2013-05-12 14 views
10

Provenendo da uno sfondo di liste in Python e quello di linguaggi di programmazione come C++/Java, uno è usato per la notazione di estrarre elementi usando l'approccio a[i][j] . Ma in NumPy, uno di solito è a[i,j]. Entrambi questi restituirebbero lo stesso risultato.Numpy: Differenza tra [i] [j] e a [i, j]

Qual è la differenza fondamentale tra i due e quale dovrebbe essere preferita?

risposta

11

La differenza principale è che a[i][j] crea prima una vista su a[i] e quindi indicizza in quella vista. D'altra parte, a[i,j] indici direttamente in a, rendendo più veloce:

In [9]: a = np.random.rand(1000,1000) 

In [10]: %timeit a[123][456] 
1000000 loops, best of 3: 586 ns per loop 

In [11]: %timeit a[123,456] 
1000000 loops, best of 3: 234 ns per loop 

Per questo motivo, preferisco la seconda.

Problemi correlati