参见英文答案 >
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