axis = 3 para una matriz 3D en numpy?

Sep 21 2020

Estoy confundido en cuanto a por qué no obtengo un error para el eje = 3 en lo siguiente

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)

Estaba usando el código anterior como una forma de entender cómo funciona el eje en numpy.

De este artículo que muestra el caso 2D:

me di cuenta de que para el eje multidimensional, el eje 0 siempre está a lo largo de las filas (dimensión y), el eje 1 (dimensión x) está a lo largo de las columnas. Entonces, en mi caso, en el que tengo una matriz 3d, habría pensado que tendría 1 eje más, eje = 2 a lo largo de la 'dirección z'. Sin embargo, ¿numpy me permite ingresar también el eje = 3? ¿En qué dirección está esta indexación? ¿Cómo usa Numpy este eje para calcular una media?

Respuestas

3 MichaelSzczesny Sep 21 2020 at 21:42

Creas una matriz 4D en la llamada

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

Salida

 (2, 3, 3, 3)