为了账号安全,请及时绑定邮箱和手机立即绑定

如何沿一个轴获取numpy数组中最大元素的索引

/ 猿问

如何沿一个轴获取numpy数组中最大元素的索引

烧仙草VB 2019-11-12 10:52:44

我有一个二维的NumPy数组。我知道如何获取轴上的最大值:


>>> a = array([[1,2,3],[4,3,1]])

>>> amax(a,axis=0)

array([4, 3, 3])

如何获得最大元素的索引?所以我想作为输出array([1,1,0])


查看完整描述

3 回答

?
Cats萌萌

>>> a.argmax(axis=0)


array([1, 1, 0])


查看完整回答
反对 回复 2019-11-12
?
狐的传说

>>> import numpy as np

>>> a = np.array([[1,2,3],[4,3,1]])

>>> i,j = np.unravel_index(a.argmax(), a.shape)

>>> a[i,j]

4


查看完整回答
反对 回复 2019-11-12
?
蝴蝶刀刀

argmax()将仅返回每一行的第一个匹配项。 http://docs.scipy.org/doc/numpy/reference/generation/numpy.argmax.html


如果您需要对整形数组执行此操作,则此方法比unravel:


import numpy as np

a = np.array([[1,2,3], [4,3,1]])  # Can be of any shape

indices = np.where(a == a.max())

您还可以更改条件:


indices = np.where(a >= 1.5)

上面以您要求的形式为您提供了结果。另外,您可以通过以下方式将其转换为x,y坐标列表:


x_y_coords =  zip(indices[0], indices[1])


查看完整回答
反对 回复 2019-11-12

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信