pythonで100個のフロートの配列の最小値を見つけるにはどうすればよいですか? minindex=darr.argmin()
と_print darr[minindex]
_を_import numpy
_で試しました(darrは配列の名前です)
しかし、私は得る:minindex=darr.argmin()
_AttributeError: 'list' object has no attribute 'argmin'
_
何が問題なのでしょうか?より良い代替手段はありますか?
前もって感謝します
Pythonには min()
組み込み関数 があります:
>>> darr = [1, 3.14159, 1e100, -2.71828]
>>> min(darr)
-2.71828
Numpyを使用する場合は、darr
をlist
ではなくnumpy配列として定義する必要があります。
_import numpy as np
darr = np.array([1, 3.14159, 1e100, -2.71828])
print(darr.min())
_
darr.argmin()
は、最小値に対応するインデックスを提供します。
エラーが発生した理由は、argmin
がnumpy配列で理解されるメソッドであり、Python lists
では理解されないためです。
各行の最小値を取得するために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)