Numpy를 활용한 배열 생성, 연산, 난수 생성 및 변형 방법
1. Numpy 기본 함수
📑 배열 생성 및 구조 확인
import numpy as np
arr = np.arange(15)
print(arr)
arr_2d = arr.reshape(3, 5)
print(arr_2d)
print("자료형:", arr_2d.dtype)
print("배열 구조:", arr_2d.shape)
print("차원:", arr_2d.ndim)
print("요소 바이트 크기:", arr_2d.itemsize)
print("요소 개수:", arr_2d.size)
📑 배열 초기화 및 단위 행렬 생성
zeros_arr = np.zeros((3, 4))
print(zeros_arr)
ones_arr = np.ones((2, 3), dtype=int)
print(ones_arr)
identity_matrix = np.eye(5)
print(identity_matrix)
linspace_arr = np.linspace(0, 2, 9)
print(linspace_arr)
2. Numpy 배열 연산
📑 1차원 배열 연산
a = np.array([20, 30, 40, 50])
b = np.arange(4)
print(a - b)
print(a + b)
print(a * b)
print(b ** 2)
print(a < 35)
📑 2차원 배열 연산
a = np.array([[1, 1], [0, 1]])
b = np.array([[2, 0], [3, 4]])
print(a + b)
print(a - b)
print(a * b)
c = a.dot(b)
print(c)
3. 난수 생성 및 통계 함수
📑 난수 생성
rng = np.random.default_rng(1)
random_arr = rng.random((2, 3))
print(random_arr)
int_random_arr = np.random.randint(0, 10, (2, 3))
print(int_random_arr)
📑 통계 함수
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr.sum())
print(arr.min())
print(arr.max())
print(arr.sum(axis=0))
print(arr.min(axis=1))
print(arr.cumsum(axis=0))
4. 배열 변형 및 병합
📑 배열의 형태 변형
flattened_arr = arr.ravel()
print(flattened_arr)
arr.resize((6, 6))
print(arr)
📑 배열 병합 및 분할
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
vertical_stack = np.vstack((arr1, arr2))
horizontal_stack = np.hstack((arr1, arr2))
print(vertical_stack)
print(horizontal_stack)
split_arr = np.hsplit(horizontal_stack, 2)
print(split_arr)
split_arr = np.vsplit(vertical_stack, 2)
print(split_arr)