方法1,调整您的方法:
>>> a = np.array([[0, 1], [2, 3], [4, 5], [6, 7], [9, 8]])>>> b = np.zeros_like(a)>>> b[np.arange(len(a)), a.argmax(1)] = 1>>> barray([[0, 1], [0, 1], [0, 1], [0, 1], [1, 0]])
[实际上,
range可以正常工作;我
arange出于习惯写信。]
方法2,使用
max而不是
argmax处理多个元素达到最大值的情况:
>>> a = np.array([[0, 1], [2, 2], [4, 3]])>>> (a == a.max(axis=1)[:,None]).astype(int)array([[0, 1], [1, 1], [1, 0]])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)