我想保留每一行中的最大值并将所有其他值更改为零,就像这样
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 9, 8])
should be
[0,0,0,0,0,0,0,0,9,0]
到目前为止,我已经能够将最大值变为 1,并将所有其他值变为 0。
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
b
我怎样才能保留原来的价值?我想将 b 与 a 相乘,这可能可以解决它。但肯定必须有一个更简单的方法。
您可能会numpy.where
用于此任务
import numpy as np
a = np.array([[0, 1, 2, 3, 4, 5, 6, 7, 9, 8]])
b = np.where(a==np.max(a), a, 0)
print(b)
输出
[[0 0 0 0 0 0 0 0 9 0]]
说明:这确实从满足条件的位置和所有其他位置创建了numpy.array
具有相同形状a
和相应值的值。a
0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句