import numpy as np
# 1. reshape()를 이용한 모양(shape) 변경
np_arr = np.arange(12)
print(f'np_arr: \n{np_arr}')
np_arr_reshape = np_arr.reshape((4, 3))
print(f'np_arr_reshape: \n{np_arr_reshape}')
np_arr_reshape = np_arr_reshape.reshape((12))
print(f'np_arr_reshape: \n{np_arr_reshape}')
# 2. resize()를 이용한 배열 크기 변경
np_arr = np.arange(36).reshape((4, 3, 3))
print(f'np_arr: \n{np_arr}')
np_arr.resize((3, 3, 4))
print(f'np_arr: \n{np_arr}')
# 3. ravel()를 이용한 1차원 배열로 변경
np_arr = np.arange(36).reshape((4, 3, 3))
print(f'np_arr: \n{np_arr}')
np_arr_ravel = np_arr.ravel()
print(f'np_arr_ravel: \n{np_arr_ravel}')
# 4. flatten()를 이용한 1차원 배열로 변경
np_arr = np.arange(36).reshape((4, 3, 3))
print(f'np_arr: \n{np_arr}')
np_arr_flatten = np_arr.flatten()
print(f'np_arr_flatten: \n{np_arr_flatten}')
# 5. expand_dims()를 이용한 차원 추가
np_arr = np.arange(12).reshape(3, 4)
print(f'np_arr: \n{np_arr}')
np_arr_expand_dims = np.expand_dims(np_arr, axis=0) # 0번째 축(맨 앞에)에 새로운 차원을 추가
print(f'np_arr_expand_dims: \n{np_arr_expand_dims}')
print(f'np_arr_expand_dims.shape: \n{np_arr_expand_dims.shape}')
np_arr_expand_dims = np.expand_dims(np_arr, axis=1) # 1번째 축에 새로운 차원을 추가
print(f'np_arr_expand_dims: \n{np_arr_expand_dims}')
print(f'np_arr_expand_dims.shape: \n{np_arr_expand_dims.shape}')
np_arr_expand_dims = np.expand_dims(np_arr, axis=2) # 2번째 축에 새로운 차원을 추가
print(f'np_arr_expand_dims: \n{np_arr_expand_dims}')
print(f'np_arr_expand_dims.shape: \n{np_arr_expand_dims.shape}')
# 6. squeeze()를 이용한 축의 길이가 1인 축을 제거
np_arr = np.array(
[
[
[1, 2, 3, 4, 5],
[10, 20, 30, 40, 50]
]
]
)
print(f'np_arr: \n{np_arr}')
print(f'np_arr: \n{np.squeeze(np_arr)}')
# 7. Data type 변경
np_arr = np.arange(12).reshape(4, 3)
print(f'np_arr: \n{np_arr}')
print(f'np_arr.dtype: \n{np_arr.dtype}')
np_arr_dtype = np_arr.astype(float)
print(f'np_arr_dtype: \n{np_arr_dtype}')
print(f'np_arr_dtype.dtype: \n{np_arr_dtype.dtype}')
# 8. vstack()과 hstack()을 이용한 배열 결합
np_arr_01 = np.array([1, 2, 3, 4, 5])
print(f'np_arr_01: \n{np_arr_01}')
np_arr_02 = np.array([10, 20, 30, 40, 50])
print(f'np_arr_02: \n{np_arr_02}')
np_arr_vstack = np.vstack((np_arr_01, np_arr_02))
print(f'np_arr_vstack: \n{np_arr_vstack}')
np_arr_hstack = np.hstack((np_arr_01, np_arr_02))
print(f'np_arr_hstack: \n{np_arr_hstack}')
np_arr_01 = np.arange(12).reshape(3, 4)
print(f'np_arr_01: \n{np_arr_01}')
np_arr_02 = np.arange(12, 24).reshape(3, 4)
print(f'np_arr_02: \n{np_arr_02}')
np_arr_vstack = np.vstack((np_arr_01, np_arr_02))
print(f'np_arr_vstack: \n{np_arr_vstack}')
np_arr_hstack = np.hstack((np_arr_01, np_arr_02))
print(f'np_arr_hstack: \n{np_arr_hstack}')
# 9. dstack()을 이용한 배열 결합: 결과는 3차원 배열
np_arr_01 = np.array([1, 2, 3, 4, 5])
print(f'np_arr_01: \n{np_arr_01}')
np_arr_02 = np.array([10, 20, 30, 40, 50])
print(f'np_arr_02: \n{np_arr_02}')
np_arr_dstack = np.dstack((np_arr_01, np_arr_02))
print(f'np_arr_dstack: \n{np_arr_dstack}')
np_arr_01 = np.arange(6).reshape(2, 3)
print(f'np_arr_01: \n{np_arr_01}')
np_arr_02 = np.arange(6, 12).reshape(2, 3)
print(f'np_arr_02: \n{np_arr_02}')
np_arr_dstack = np.dstack((np_arr_01, np_arr_02))
print(f'np_arr_dstack: \n{np_arr_dstack}')
# 10. concatenate()을 이용한 배열 결합
np_arr_01 = np.arange(1, 5).reshape(2, 2)
print(f'np_arr_01: \n{np_arr_01}')
np_arr_02 = np.arange(5, 9).reshape(2, 2)
print(f'np_arr_02: \n{np_arr_02}')
np_arr_concatenate = np.concatenate((np_arr_01, np_arr_02), axis=0)
print(f'np_arr_concatenate: \n{np_arr_concatenate}')
np_arr_concatenate = np.concatenate((np_arr_01, np_arr_02), axis=1)
print(f'np_arr_concatenate: \n{np_arr_concatenate}')반응형
'python' 카테고리의 다른 글
| [Numpy] 배열 조회 (0) | 2025.08.25 |
|---|---|
| [Numpy] 배열 생성 (0) | 2025.08.25 |
| [Numpy] 배열 병합 및 분할 (0) | 2025.08.20 |
| [Numpy] 배열 연산 (0) | 2025.08.20 |
| [Numpy] shape 변경(리쉐이프) (0) | 2025.08.20 |