asse = 3 per un array 3D in numpy?

Sep 21 2020

Sono confuso sul motivo per cui non ricevo un errore per l'asse = 3 di seguito

import numpy as np

a = np.arange(27)
b = np.arange(27)

a = a.reshape((3,3,3))
b = b.reshape((3,3,3))

c = np.mean([a,b],axis=3)

Stavo usando il codice sopra come un modo per capire come funziona l'asse in numpy.

Da questo articolo che mostra il caso 2D:

ho capito che per l'asse multidimensionale, l'asse 0 è sempre lungo le righe (dimensione y), l'asse 1 (dimensione x) è lungo le colonne. Quindi, nel mio caso in cui ho un array 3d, avrei pensato di avere 1 asse in più, asse = 2 lungo la "direzione z". Eppure numpy mi permette di inserire anche axis = 3? In che direzione sta questa indicizzazione? In che modo numpy usa questo asse per calcolare una media?

Risposte

3 MichaelSzczesny Sep 21 2020 at 21:42

Crei un array 4D nella chiamata

c = np.mean([a,b],axis=3) # [a,b] adds 4th dimension
np.array([a,b]).shape

Produzione

 (2, 3, 3, 3)