如何在numpy数组列中找到最大值?

41 投票
1 回答
83313 浏览
提问于 2025-04-17 20:30

我看到有很多关于这个问题的不同版本,但没有找到这个(其实很简单)的问题:我怎么才能找到一个numpy数组中特定列的最大值(用最符合Python风格的方法)呢?

a = array([[10, 2], [3, 4], [5, 6]])

我想要的是第一列和第二列的最大值(这两列是x和y坐标,最后我需要每个形状的高度和宽度),所以最大x坐标是10,最大y坐标是6。

我试过:

xmax = numpy.amax(a,axis=0)
ymax = numpy.amax(a,axis=1)

但是这些结果

array([10, 6])
array([10, 4, 6])

...并不是我预期的。

我的解决办法是使用切片:

xmax = numpy.max(a[:,0])
ymax = numpy.max(a[:,1])

这个方法有效,但似乎不是最好的选择。

有什么建议吗?

1 个回答

53

只需要把列表展开就可以了:

In [273]: xmax, ymax = a.max(axis=0)

In [274]: print xmax, ymax
#10 6

撰写回答