我有以下与我的目标索引相对应的索引[2 4 3 4]
列表。我使用以下代码行targets = np.zeros((features.shape[0], 5))
创建一个零矩阵。我想知道是否有可能以这样的方式切片,以便我可以同时更新所有特定索引并将这些值设置为1而不使用for循环,理想情况下矩阵看起来像
([0,0,1,0,0], [0,0,0,0,1], [0,0,0,1,0], [0,0,0,0,1])
答案 0 :(得分:4)
我相信你可以这样做:
targets = np.zeros((4, 5))
ind = [2, 4, 3, 4]
targets[np.arange(0, 4), ind] = 1
结果如下:
array([[ 0., 0., 1., 0., 0.],
[ 0., 0., 0., 0., 1.],
[ 0., 0., 0., 1., 0.],
[ 0., 0., 0., 0., 1.]])