eixo = 3 para uma matriz 3D em numpy?

Sep 21 2020

Estou confuso sobre por que não recebo um erro para o eixo = 3 no seguinte

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)

Eu estava usando o código acima como uma forma de entender como os eixos funcionam no numpy.

A partir deste artigo que mostra o caso 2D:

eu descobri que para o eixo multidimensional, o eixo 0 está sempre ao longo das linhas (dimensão y), o eixo 1 (dimensão x) está ao longo das colunas. Portanto, no meu caso onde tenho uma matriz 3D, pensei que teria mais 1 eixo, eixo = 2 ao longo da 'direção z'. No entanto, numpy me permite inserir axis = 3 também? Em que direção essa indexação está passando? Como é numpy usar este eixo para calcular uma média?

Respostas

3 MichaelSzczesny Sep 21 2020 at 21:42

Você cria um array 4D na chamada

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

Resultado

 (2, 3, 3, 3)