Python:获取数组中最大项的位置

我怎样才能得到一个多维的numpyarrays中最大的项目的位置?

2 Solutions collect form web for “Python:获取数组中最大项的位置”

argmax()方法应该有所帮助。

更新

(阅读评论后)我相信argmax()方法也适用于multidimensional array。 链接的文档给出了一个例子:

 >>> a = array([[10,50,30],[60,20,40]]) >>> maxindex = a.argmax() >>> maxindex 3 

更新2

(感谢KennyTM的评论)你可以使用unravel_index(a.argmax(), a.shape)来获取索引作为元组:

 >>> from numpy import unravel_index >>> unravel_index(a.argmax(), a.shape) (1, 0) 

(编辑)我指的是一个已被删除的旧答案 。 接受的答案是在我的后面。 我同意argmax比我的答案好。

这样做会不会更具可读性?

 numpy.nonzero(a.max() == a) (array([1]), array([0])) 

要么,

 numpy.argwhere(a.max() == a) 
  • join多个string(如果它们在Python中不是空的话)
  • 在Python中获取临时目录的跨平台方式
  • 在string中查找最长的重复序列
  • 具有双下划线的Python方法名称被覆盖?
  • 我怎样才能正常化在Python中的URL
  • 我怎样才能在Python中使用eval分配一个variables的值?
  • 我应该如何组织Python源代码?
  • 在python中用scipy / numpy合并数据
  • 如何传递额外的参数到Python装饰器?
  • 如何刷新Python打印输出?
  • 在JPG图像上操作时,“无法将模式P写入JPEG”