说我有
Y = np.array([2, 0, 1, 1])
由此我想要获得一个形状为 的矩阵 X。 (len(Y), 3)在这个特殊情况下,X 的第一行在第二个索引上应该有一个 1,否则为零。X 的第二行在 0 索引上应该有一个 1,否则为零。明确地说:
(len(Y), 3)
X = np.array([[0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 1, 0]])
我如何生成这个矩阵?我首先
X = np.zeros((Y.shape[0], 3))
但后来无法弄清楚如何填充/填写索引列表中的内容
>>> Y = np.array([2, 0, 1, 1]) >>> X = np.zeros((len(Y), 3)) >>> X[np.arange(len(Y)), Y] = 1 >>> X array([[ 0., 0., 1.], [ 1., 0., 0.], [ 0., 1., 0.], [ 0., 1., 0.]])