Se io tagliare un array 2D con una serie di coordinateAffettare 3d serie NumPy torna strana forma
>>> test = np.reshape(np.arange(40),(5,8))
>>> coords = np.array((1,3,4))
>>> slice = test[:, coords]
allora la mia fetta ha la forma che mi aspetterei
>>> slice.shape
(5, 3)
Ma se ripeto questo con una matrice 3d
>>> test = np.reshape(np.arange(80),(2,5,8))
>>> slice = test[0, :, coords]
quindi la forma è ora
012.351.>>> slice.shape
(3, 5)
C'è un motivo per cui questi sono diversi? Separare gli indici restituisce la forma che mi aspetterei
>>> slice = test[0][:][coords]
>>> slice.shape
(5, 3)
Perché queste viste hanno forme diverse?
Tra l'altro, non è legato alla tua domanda, 'slice()' è un pitone integrato, https://docs.python.org/2/library/functions.html#slice. Puoi usarlo possibilmente per nominare un oggetto fetta. – Scott