[1] Indexing and slicing 3rd Order Tensor ndarrays

a = np.arange(3*3*3).reshape((3,3,3))
print(f"ndarray: \n{a}\n")
print("a[0] : \n", a[0])
print("a[1] : \n", a[1])
print("a[2] : \n", a[2])

print("a[0, 0] : \n", a[0, 0])
print("a[0, 1] : \n", a[0, 1])
print("a[0, 2] : \n", a[0, 2])
print("a[1, 0] : \n", a[1, 0])
print("a[1, 1] : \n", a[1, 1])
print("a[1, 2] : \n", a[1, 2])
print("a[2, 0] : \n", a[2, 0])
print("a[2, 1] : \n", a[2, 1])
print("a[2, 2] : \n", a[2, 2])

print("a[0, :2, :2] : \n", a[0, :2, :2])
print("a[1, :2, :] : \n", a[1, :2, :])
print("a[2, -2:, -2:] : \n", a[2, -2:, -2:])

a = np.arange(3*3*3).reshape((3,3,3))
print(f"ndarray: \n{a}\n")
print("a[:, :2, :] : \n", a[:, :2, :])

a = np.arange(3*3*3).reshape((3,3,3))
print(f"ndarray: \n{a}\n")
print("a[:, :, 0] : \n", a[:, :, 0])

print("a[1:, -2:, -2:] : \n", a[1:, -2:, -2:])

[2] 전체코드
import numpy as np
a = np.arange(3*3*3).reshape((3,3,3))
print(f"ndarray: \n{a}\n")
print("a[0] : \n", a[0])
print("a[1] : \n", a[1])
print("a[2] : \n", a[2])
#
print("a[0, 0] : \n", a[0, 0])
print("a[0, 1] : \n", a[0, 1])
print("a[0, 2] : \n", a[0, 2])
print("a[1, 0] : \n", a[1, 0])
print("a[1, 1] : \n", a[1, 1])
print("a[1, 2] : \n", a[1, 2])
print("a[2, 0] : \n", a[2, 0])
print("a[2, 1] : \n", a[2, 1])
print("a[2, 2] : \n", a[2, 2])
#
print("a[0, :2, :2] : \n", a[0, :2, :2])
print("a[1, :2, :] : \n", a[1, :2, :])
print("a[2, -2:, -2:] : \n", a[2, -2:, -2:])
#
images = np.random.normal(size = (32, 100, 200))
print("image set: ", images.shape)
image0 = images[0, :, :]
print(image0.shape)
image0 = images[0, ...]
print(image0.shape)
col0 = images[:, :, 0]
print(col0.shape)
col0 = images[..., 0]
print(col0.shape, '\n')
image0_col0 = images[0, :, 0]
print(image0_col0.shape)
#
a = np.arange(3*3*3).reshape((3,3,3))
print(f"ndarray: \n{a}\n")
print("a[:, :2, :] : \n", a[:, :2, :])
#
a = np.arange(3*3*3).reshape((3,3,3))
print(f"ndarray: \n{a}\n")
print("a[:, :, 0] : \n", a[:, :, 0])
#
print("a[1:, -2:, -2:] : \n", a[1:, -2:, -2:])
#
image = np.random.normal(size = (3, 500, 300))
image_r = image[0]
image_g = image[1]
image_b = image[2]
print(image_r.shape, image_g.shape, image_b.shape)
# 튜플 언펙킹 사용
image = np.random.normal(size = (3, 500, 300))
image_r, image_g, image_b = image
print(image_r.shape, image_g.shape, image_b.shape)
#
image = np.random.normal(size = (3, 500, 300))
top_left = image[:, :100, :100]
top_right = image[:, :100, -100:]
bottom_left = image[:, -100:, :100]
bottom_right = image[:, -100:, -100:]
print(top_left.shape, top_right.shape)
print(bottom_left.shape, bottom_right.shape)