Achse = 3 für ein 3D-Array in Numpy?

Sep 21 2020

Ich bin verwirrt, warum ich im Folgenden keinen Fehler für Achse = 3 erhalte

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)

Ich habe den obigen Code verwendet, um zu verstehen, wie die Achse in Numpy funktioniert.

Aus diesem Artikel, der den 2D-Fall zeigt:

Ich habe herausgefunden, dass für die mehrdimensionale Achse die Achse 0 immer entlang der Zeilen (y-Dimension) und die Achse 1 (x-Dimension) entlang der Spalten liegt. In meinem Fall, in dem ich ein 3D-Array habe, hätte ich gedacht, ich hätte 1 weitere Achse, Achse = 2 entlang der 'z-Richtung'. Mit numpy kann ich aber auch Achse = 3 eingeben? In welche Richtung bewegt sich diese Indizierung? Wie verwendet numpy diese Achse, um einen Mittelwert zu berechnen?

Antworten

3 MichaelSzczesny Sep 21 2020 at 21:42

Sie erstellen im Aufruf ein 4D-Array

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

Ausgabe

 (2, 3, 3, 3)