2010-08-17 7 views
19

Wie würde man den Mindestwert in einem Array von 100 Floats in Python finden? Ich habe versucht, minindex=darr.argmin() und print darr[minindex] mit import numpy (Darr ist der Name des Arrays)Finden Sie einen Mindestwert in einem Array von Floats

aber ich bekomme: minindex=darr.argmin()

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

, was das Problem sein könnte? Gibt es eine bessere Alternative?

Dank im Voraus

+0

beide Antworter danken Ihnen, aber nicht mit numpy schien überhaupt besser. – pjehyun

Antwort

19

Wenn Sie numpy verwenden möchten, müssen Sie darr definieren ein numpy Array zu sein, kein list:

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

darr.argmin() gibt Ihnen den Index, der dem Minimum entspricht.

Der Grund, warum Sie einen Fehler erhielten, ist, weil argmin eine Methode ist, die von numpy Arrays verstanden wird, aber nicht von Python lists.

+0

'np.amin (darr)' akzeptiert Listen – endolith

+2

Richtig, obwohl 'np.amin (darr)' unter der Haube 'landet und' np.asarray (darr) .min() 'aufruft, und ist ca. 50% langsamer extra '__array_wrap__' Code. – unutbu

Verwandte Themen