我要通过一些代码
y_enc = np.eye(21)[label]
其中label是形状的ndarray(224,224) y_enc是形状的ndarray(224,224,21)
即使印有形状,我也无法理解这种说法。 np.eye应该生成一个尺寸为21 x 21的对角矩阵。在它之后有[label]是什么意思?
答案 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