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

参见英文答案 >
How does this one-hot vector conversion work?                                    2个

我要通过一些代码

y_enc = np.eye(21)[label]

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

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

最佳答案 从
Documentation. numpy.eye

Return a 2-D array with ones on the diagonal and zeros elsewhere.

例:

>>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
点赞