web-dev-qa-db-ja.com

floatの配列で最小値を見つける

pythonで100個のフロートの配列の最小値を見つけるにはどうすればよいですか? minindex=darr.argmin()と_print darr[minindex]_を_import numpy_で試しました(darrは配列の名前です)

しかし、私は得る:minindex=darr.argmin()

_AttributeError: 'list' object has no attribute 'argmin'_

何が問題なのでしょうか?より良い代替手段はありますか?

前もって感謝します

28
pjehyun

Pythonには min()組み込み関数 があります:

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

Numpyを使用する場合は、darrlistではなくnumpy配列として定義する必要があります。

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

darr.argmin()は、最小値に対応するインデックスを提供します。

エラーが発生した理由は、argminがnumpy配列で理解されるメソッドであり、Python listsでは理解されないためです。

23
unutbu

各行の最小値を取得するために2D配列を反復する必要があり、取得した最小値を別の配列にプッシュする必要があり、最後に各最小行の値がプッシュされた配列の最小値を取得する必要があります

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)
0
Pedro Machado