axis = 3 cho một mảng 3D trong numpy?

Sep 21 2020

Tôi bối rối không hiểu tại sao tôi không gặp lỗi cho trục = 3 trong phần sau

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)

Tôi đã sử dụng đoạn mã trên như một cách để hiểu cách trục hoạt động trong numpy.

Từ bài viết này cho thấy trường hợp 2D:

Tôi đã phát hiện ra rằng đối với trục đa chiều, trục 0 luôn nằm dọc theo các hàng (kích thước y), trục 1 (kích thước x) dọc theo các cột. Vì vậy, trong trường hợp của tôi, nơi tôi có một mảng 3d, tôi đã nghĩ rằng tôi sẽ có thêm 1 trục, trục = 2 dọc theo 'hướng z'. Tuy nhiên, numpy cũng cho phép tôi nhập trục = 3? Việc lập chỉ mục này theo hướng nào? Làm thế nào là numpy sử dụng trục này để tính giá trị trung bình?

Trả lời

3 MichaelSzczesny Sep 21 2020 at 21:42

Bạn tạo một mảng 4D trong cuộc gọi

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

Đầu ra

 (2, 3, 3, 3)