2010-08-17 27 views
19

come si fa a trovare il valore minimo in una matrice di 100 float in python? Ho provato minindex=darr.argmin() e print darr[minindex] con import numpy (darr è il nome della matrice)trova un valore minimo in una matrice di float

ma ottengo: minindex=darr.argmin()

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

quale potrebbe essere il problema? c'è un'alternativa migliore?

grazie in anticipo

+0

entrambi i rispondenti ti ringraziano, ma non usare affatto numpy sembrava meglio. – pjehyun

risposta

19

Se si desidera utilizzare NumPy, è necessario definire darr ad essere una matrice NumPy, non un list:

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

darr.argmin() ti darà l'indice corrispondente al minimo.

Il motivo per cui si è verificato un errore è perché argmin è un metodo compreso dagli array di numpy, ma non da Python lists.

+0

'np.amin (darr)' accetta le liste – endolith

+2

Vero, anche se sotto il cappuccio 'np.amin (darr)' finisce per chiamare 'np.asarray (darr) .min()', ed è circa il 50% più lento a causa di extra '__array_wrap__' codice. – unutbu

Problemi correlati