2013-08-27 13 views
5

Jest to problem, z którym miałem do czynienia, gdy piszę kod Pythona dla przykładowej entropii.Potrzebujesz szybszego kodu Pythona do obliczania entropii próbki

map(max, abs(a[i]-a)) jest bardzo wolny.

Czy istnieje jakakolwiek inna funkcja działająca lepiej niż map()?

Gdzie a jest ndarray że wygląda np.array([ [1,2,3,4,5],[2,3,4,5,6],[3,4,5,3,2] ])

+1

Co 'A' tutaj? I czy jest to Python 2.x czy 3.x ("map()" nie jest takie samo w obu)? – arshajii

+0

wypróbowałeś 'szybkość importu'? Poważnie jednak, jak wygląda "a" i jaka jest wymagana wydajność? – inspectorG4dget

+0

to 'a' a' numpy.ndarray'? (możesz to sprawdzić, wykonując 'type (a)') ... –

Odpowiedz

6

Użyj wektorowy max

>>> map(max, abs(a[2]-a)) 
[3, 4, 0] 
>>> np.abs(a[2] - a).max(axis=1) 
array([3, 4, 0]) 
+0

Dziękuję bardzo! –

Powiązane problemy