![](/img/trans.png)
[英]Finding maximum value and their indices in a sparse lil_matrix (Scipy/Python)
[英]find indices of maximum value in matrix (python)
我想在二维numpy数组中找到最大值的索引[i,j]:
a = numpy.array([[1,2,3],[4,3,1]])
我尝试使用numpy.argsort()进行此操作,但是它返回一个数组,因为它只能沿轴进行。 一种解决方案是通过使用for循环比较argsort返回的所有索引(沿两个轴)上的元素,但这似乎有点复杂。 也许有一个简单的解决方案?
您需要np.unravel_index
。 np.argmax
将返回一个索引,就好像遍历了数组的展平版本一样。 unravel_index
将为您提供ND
索引。
a = np.random.randint(0, 10, (4,4))
ind = np.unravel_index(np.argmax(a, axis=None), a.shape) # returns a tuple
也许这可以返回您想要的东西? 它返回最大值(
max_xy = np.where(a == a.max() )
压缩结果以获取索引作为元组列表:
zip(max_xy[0], max_xy[1]) #=> [(1, 0)]
如果有多个以上最大值: a = np.array([[4,2,3],[4,3,4]])
,则返回#=> [(0, 0), (1, 0), (1, 2)]
要以元组形式返回找到的第一个最大值,只需获取数组的第一个元素:
zip(max_xy[0], max_xy[1])[0] #=> (0, 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.