如何在Python中找到一个包含100个浮点数的数组中的最小值?
我已经尝试使用import numpy
导入darr数组后,使用minindex=darr.argmin()
和print darr[minindex]
。
但是我遇到了以下错误:
AttributeError: 'list' object has no attribute 'argmin'
可能出现什么问题?有更好的替代方法吗?
Python内置了一个min()
函数:
>>> darr = [1, 3.14159, 1e100, -2.71828]
>>> min(darr)
-2.71828
darr.min()
而不是min(darr)
。 - Meaddarr
定义为一个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%。 - unutbudef 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)
如果要在数组中查找最小值,可以尝试以下代码:
>>> mydict = {"a": -1.5, "b": -1000.44, "c": -3}
>>> min(mydict.values())
-1000.44