在浮点数组中找到最小值
Posted
技术标签:
【中文标题】在浮点数组中找到最小值【英文标题】: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 似乎更好。 【参考方案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
【讨论】:
以上是关于在浮点数组中找到最小值的主要内容,如果未能解决你的问题,请参考以下文章