Numpy argmax。如何计算最大值和最大值的索引?

41

有没有一种方法可以同时获得最大值和最大值的位置?

import numpy as np
a=[0,0,1,0]
maximum=max(a)
index=np.argmax(a)

有没有一种像这样的最快方法:

[maximum,index]=function(a)

2
有时候 pytorchnumpy 更优雅:torch.tensor([0,0,1,0]).max(0) 返回 torch.return_types.max(values=tensor(1),indices=tensor(2)) - daknowles
1个回答

40
也许这样会更快一些...
index = np.argmax(a)
maximum = a[index]

3
节省计算时间的观点不错,但是如果原始的argmax调用将在第二轴上对一个二维数组进行排序,那么第二个语句可能会导致错误。 - PaulDong
你可以使用unravel_index (https://docs.scipy.org/doc/numpy/reference/generated/numpy.unravel_index.html)来恢复它。 - PaxRomana99
2
你的意思是 a[index] 吗?据我所知,ndarray 不可调用。 - nyanpasu64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接