【问题标题】:Why .argmax returns 1 instead of the maximum? [duplicate]为什么 .argmax 返回 1 而不是最大值? [复制]
【发布时间】:2019-06-25 10:15:09
【问题描述】:

我正在寻找两个数组的最大值,并尝试获取每个数组的最大值并添加到另一个“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/

【问题讨论】:

标签: python numpy


【解决方案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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-02-24
        • 2016-08-29
        • 2019-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多