axis = 3 для 3D-массива в numpy?

#python #numpy

#python #numpy

Вопрос:

Я не понимаю, почему я не получаю ошибку для axis = 3 в следующем

 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)
  

Я использовал приведенный выше код, чтобы понять, как работает axis в numpy.

Из этой статьи, в которой показан случай 2D:введите описание изображения здесь я выяснил, что для многомерной оси ось 0 всегда проходит вдоль строк (измерение y), ось 1 (измерение x) проходит вдоль столбцов. Итак, в моем случае, когда у меня есть 3d-массив, я бы подумал, что у меня будет еще 1 ось, axis = 2 вдоль «направления z». Тем не менее, numpy позволяет мне также вводить axis = 3? В каком направлении выполняется эта индексация? Как numpy использует эту ось для вычисления среднего?

Комментарии:

1. Что такое np.array([a,b]).shape ?

Ответ №1:

Вы создаете 4D-массив в вызове

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

Вывод

  (2, 3, 3, 3)