2010-08-17 7 views
19

jak można by znaleźć minimalną wartość w tablicy 100 pływaków w python? Próbowałem minindex=darr.argmin() i print darr[minindex] z import numpy (darr jest nazwą tablicy)znaleźć minimalną wartość w tablicy pływaków

ale ja dostać: minindex=darr.argmin()

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

co może być problemem? czy istnieje lepsza alternatywa?

góry dzięki

+0

oba podziękowania dziękuję, ale nie używanie numpy w ogóle wydawało się lepsze. – pjehyun

Odpowiedz

19

Jeśli chcesz użyć numpy, należy zdefiniować darr być numpy tablicy, a nie list:

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

darr.argmin() podaje indeks odpowiadający minimum.

Powodem, dla którego pojawił się błąd, jest to, że argmin jest metodą zrozumiałą dla numpy array, ale nie przez Python lists.

+0

'np.amin (darr)' akceptuje listy – endolith

+2

Prawda, chociaż pod maską 'np.amin (darr)' kończy się wywoływaniem 'np.asarray (darr) .min()' i jest o 50% wolniejsze ze względu na dodatkowy kod "__array_wrap__". – unutbu