np.eye(n)[nparray]是什么意思?

时间:2017-09-09 03:45:25

标签: numpy

我要通过一些代码

y_enc = np.eye(21)[label]

其中label是形状的ndarray(224,224) y_enc是形状的ndarray(224,224,21)

即使印有形状,我也无法理解这种说法。 np.eye应该生成一个尺寸为21 x 21的对角矩阵。在它之后有[label]是什么意思?

1 个答案:

答案 0 :(得分:2)

来自Documentation。的 numpy.eye

  

返回一个二维数组,其中对角线为1,零点为零。

示例:

>>np.eye(3)
array([[ 1.,  0.,  0.],
   [ 0.,  1.,  0.],
   [ 0.,  0.,  1.]])
>>> np.eye(3)[1]
array([ 0.,  1.,  0.])

[label]是数组元素索引。因此,只有一个元素,它返回给定的行数元素作为数组。

>>> np.eye(3)[1]
array([ 0.,  1.,  0.])
>>> np.eye(3)[2]
array([ 0.,  0.,  1.])

因为它是2d数组,您还可以通过在[row_index, column_index]上提供2个索引号来访问特定元素

>>> np.eye(3)[2,1]
0.0
>>> np.eye(3)[2,2]
1.0
>>> np.eye(3)[1,1]
1.0