我正在寻找一种方法来找到2维矢量的每一行中的最大值并将其索引保存在另一个矢量中。我知道我可以用以下代码做到这一点:
max_index = np.argmax(vec, axis=1)
现在,我的问题是,当一行具有多个最大值时,它将获取它的第一个索引。假设我们有这个矩阵:
vec = [[1, 0 ,1],
[1, 2 ,3],
[0, 5 ,5]]
所以我想当一行中有多个max时用-1代替max的索引。最后,max_index应该是这样的。
max_index = [-1, 2, -1]
提前致谢
绝招:argmax
从左侧和右侧获取,并检查它们是否重合:
L = np.argmax(vec,1)
R = np.argmax(vec[:,::-1],1)
np.where(L+R==len(vec[0])-1,L,-1)
# array([-1, 2, -1])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句