【问题标题】:find a minimum value in an array of floats在浮点数组中找到最小值
【发布时间】:2011-03-30 18:24:00
【问题描述】:

如何在 python 的 100 个浮点数的数组中找到最小值? 我试过minindex=darr.argmin()print darr[minindex]import numpy(darr 是数组的名称)

但我得到: minindex=darr.argmin()

AttributeError: 'list' object has no attribute 'argmin'

可能是什么问题?有没有更好的选择?

提前致谢

【问题讨论】:

  • 两位回答者都谢谢你,但不使用 numpy 似乎更好。

标签: python arrays numpy minimum


【解决方案1】:

Python 有一个min() built-in function:

>>> darr = [1, 3.14159, 1e100, -2.71828]
>>> min(darr)
-2.71828

【讨论】:

    【解决方案2】:

    如果你想使用numpy,你必须将darr定义为一个numpy数组,而不是list

    import numpy as np
    darr = np.array([1, 3.14159, 1e100, -2.71828])
    print(darr.min())
    

    darr.argmin() 会给你最小值对应的索引。

    您收到错误的原因是因为 argmin 是 numpy 数组可以理解的方法,但 Python lists 不理解。

    【讨论】:

    • 是的,虽然在后台 np.amin(darr) 最终会调用 np.asarray(darr).min(),并且由于额外的 __array_wrap__ 代码而慢了大约 50%。
    【解决方案3】:

    您需要迭代二维数组以获得每一行的最小值,然后您必须将任何获得的最小值推送到另一个数组,最后您需要获取每个最小值行值所在的数组的最小值被推了

    def get_min_value(self, table):
        min_values = []
        for i in range(0, len(table)):
            min_value = min(table[i])
            min_values.append(min_value)
    
        return min(min_values)
    

    【讨论】:

      【解决方案4】:

      如果数组中有最小值,你可以试试:

      >>> mydict = {"a": -1.5, "b": -1000.44, "c": -3}
      >>> min(mydict.values())
      -1000.44
      

      【讨论】:

        猜你喜欢
        • 2014-10-23
        • 1970-01-01
        • 1970-01-01
        • 2021-11-21
        • 2014-05-26
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多