为什么.argmax返回1而不是最大值?

时间:2019-06-25 10:15:09

标签: python numpy

我正在寻找两个数组的最大值,我试图获取每个数组的最大值并添加到另一个'np.array'中。但是,我得到了1。

maximums = [x_train.argmax(), x_test.argmax()]
print(maximums)
maximums = np.array(maximums)
print(maximums)
maximum = maximums.argmax()
print(maximum)

我希望最大值为577,但值为1。

[417, 577]
[417 577]
1

错误在哪里,或者为什么我没有得到想要的东西?

编辑: 我找到了一个满足我需求的函数,它是‘numpy.amax()’https://thispointer.com/find-max-value-its-index-in-numpy-array-numpy-amax/

3 个答案:

答案 0 :(得分:1)

np.argmax返回最大值的索引。在这种情况下,最大值577的索引为1。官方文档参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.argmax.html

为了举例说明,np.argmax等同于获取列表中最大值的索引:

In [82]: import numpy as np

In [83]: vals = [477,577]

In [84]: max(vals)
Out[84]: 577

In [86]: vals.index(max(vals))
Out[86]: 1

In [87]: max_index = vals.index(max(vals))

In [88]: np.argmax(vals)
Out[88]: 1

In [89]: np.argmax(vals) == max_index
Out[89]: True

答案 1 :(得分:0)

argmax返回沿轴的最大值的索引。” Docs:docs.scipy.org/doc/numpy/reference/generated/numpy.argmax.html

答案 2 :(得分:0)

argmax为您提供列表中最大值的索引,因此您可能想要执行以下操作:

j,w = x_train.argmax(), x_test.argmax()
maximums = [x_train[j], x_test[w]]

max_v = max(maximums)
print(max_v)