oś = 3 dla tablicy 3D w numpy?

Sep 21 2020

Jestem zdezorientowany, dlaczego nie otrzymuję błędu dla osi = 3 w poniższych

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)

Użyłem powyższego kodu, aby zrozumieć, jak działa oś w numpy.

Z tego artykułu, który pokazuje przypadek 2D:

dowiedziałem się, że dla osi wielowymiarowej oś 0 jest zawsze wzdłuż rzędów (wymiar y), a oś 1 (wymiar x) jest wzdłuż kolumn. Więc w moim przypadku, gdy mam tablicę 3d, pomyślałbym, że będę miał 1 oś więcej, oś = 2 wzdłuż „kierunku z”. Jednak numpy pozwala mi również wprowadzić oś = 3? W jakim kierunku jest to indeksowanie? W jaki sposób numpy używa tej osi do obliczenia średniej?

Odpowiedzi

3 MichaelSzczesny Sep 21 2020 at 21:42

Tworzysz tablicę 4D w wywołaniu

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

Wynik

 (2, 3, 3, 3)