我希望保留每行的最大值,并将所有其他值更改为零, 像这样
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,将所有其他值设置为零
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,这可能会解决这个问题。但肯定有更简单的方法
试试这个:
看看您所做的尝试,我猜您已经错误地初始化了初始数组
a
,然后将argmax()用作二维数组,如果数组a
的初始化不正确,那么您的代码应该是这样工作的:创建一个只包含零的新数组,将索引替换为max,并使用max值替换为max:
返回:
注意
您可以使用
numpy.where
执行此任务输出
说明:这确实会创建与
a
形状相同的numpy.array
,并从满足条件的a
和所有其他位置的0
创建相应的值相关问题 更多 >
编程相关推荐