numpy:将每行的max更改为1,所有其他数字更改为0

numpy:将每行的max更改为1,所有其他数字更改为0,第1张

numpy:将每行的max更改为1,所有其他数字更改为0

方法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]])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5647638.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存