NumPy에서 차원(dimension)을 축(axis)이라고도 부릅니다.
arr = np.arange(12).reshape(3, 4)
print("Array:\\n", arr)
print(f"Shape: {arr.shape}") # (3, 4)
출력
[[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]]
# Axis 0 (↓) 열 방향
# Axis 1 (→) 행 방향
arr = np.arange(12).reshape(3, 4)
# Axis 지정 없음: 전체 배열에 대해 연산
print(f"Sum (no axis): {arr.sum()}") # 66 (모든 요소의 합)
# Axis 0: 행 방향으로 축소 (세로로 합침)
# → 각 열의 합
col_sums = arr.sum(axis=0)
print(f"Sum (axis=0): {col_sums}") # [12, 15, 18, 21]
print(f"Shape: {col_sums.shape}") # (4,)
# Axis 1: 열 방향으로 축소 (가로로 합침)
# → 각 행의 합
row_sums = arr.sum(axis=1)
print(f"Sum (axis=1): {row_sums}") # [6, 22, 38]
print(f"Shape: {row_sums.shape}") # (3,)
규칙:
axis=0으로 연산하면 axis 0 방향(행)이 사라집니다axis=1으로 연산하면 axis 1 방향(열)이 사라집니다# 3D: (배치, 높이, 너비)
tensor = np.random.rand(2, 3, 4)
print(f"Shape: {tensor.shape}") # (2, 3, 4)
print(f"\\nMean (no axis): {tensor.mean():.3f}")
print(f"Mean (axis=0) shape: {tensor.mean(axis=0).shape}") # (3, 4)
print(f"Mean (axis=1) shape: {tensor.mean(axis=1).shape}") # (2, 4)
print(f"Mean (axis=2) shape: {tensor.mean(axis=2).shape}") # (2, 3)
3차원도 2차원과 같습니다.