在浮点数组中找到最小值

35 投票
4 回答
310623 浏览
提问于 2025-04-16 02:53

如果你想在一个包含100个浮点数的数组中找到最小值,应该怎么做呢?我试过用 minindex=darr.argmin()print darr[minindex],还用到了 import numpy(darr是数组的名字)。

但是我得到了这个错误:

minindex=darr.argmin()

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

这可能是什么问题呢?有没有更好的方法?

4 个回答

0

你需要遍历这个二维数组,找出每一行的最小值。然后把每一行找到的最小值放到另一个数组里。最后,你要从这个新数组中找出最小值。

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)
25

如果你想使用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(列表)是不认识这个方法的。

85

Python 有一个内置的函数叫做 min()

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

撰写回答