axis = 3 pour un tableau 3D dans numpy?

Sep 21 2020

Je ne comprends pas pourquoi je n'obtiens pas d'erreur pour axis = 3 dans ce qui suit

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)

J'utilisais le code ci-dessus pour comprendre comment les axes fonctionnent dans numpy.

De cet article qui montre le cas 2D:

j'ai compris que pour l'axe multidimensionnel, l'axe 0 est toujours le long des lignes (dimension y), l'axe 1 (dimension x) est le long des cols. Donc, dans mon cas où j'ai un tableau 3D, j'aurais pensé que j'aurais 1 axe de plus, axis = 2 le long de la «direction z». Pourtant, numpy me permet de saisir aussi axis = 3? Quelle est la direction de cette indexation? Comment numpy utilise-t-il cet axe pour calculer une moyenne?

Réponses

3 MichaelSzczesny Sep 21 2020 at 21:42

Vous créez un tableau 4D dans l'appel

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

Production

 (2, 3, 3, 3)