Ich erwäge eine numpy Array:Verschiedene Formen für die ‚gleichen‘ Teile ndarray
import numpy as np
b = np.empty((10,11,12))
Jetzt würde ich die folgenden Formen erwartet das gleiche sein, aber sie sind offensichtlich nicht:
>>> b[0,:,1].shape
>>> (11,)
und
>>> b[0][:][1].shape
>>> (12,)
Kann jemand mir erklären, warum die Formen unterschiedlich sind? Ich lese die Numpy Dokumentation über die Indizierung, aber dort steht, dass Schreiben a[k][l]
ist das gleiche wie a[k,l]
.
Aber das gilt nicht für '[:]' oder Ausdrücke mit ':'. – hpaulj
In der zweiten wird 'temp = b [0]' ausgewertet. Dann 'temp1 = temp [:]', dann 'temp1 [1]'. Das heißt, separate Indizierungsoperationen. 'b [0,:, 1]' ist eine Indexierungsoperation, die als Ganzes mit "numpy" ausgewertet wird. Es ist nicht immer sinnvoll, die beiden Operationen zu versuchen. – hpaulj