반응형
1. Numpy 불러오기
import numpy as np
2. Array 생성
# 1차원 배열
arr1 = np.array([1, 2, 3])
# 2차원 배열
arr2 = np.array([[1,2,3],
[4,5,6]])
# 3차원 배열
arr3 = np.array([[[1,2,3],
[4,5,6]],
[[7,8,9],
[10,11,12]],
[[-1,-2,-3],
[-4,-5,-6]]])
# 배열 초기화
zeros = np.zeros((2, 3)) # [[0. 0. 0.], [0. 0. 0.]]
ones = np.ones((3, 2)) # [[1. 1.], [1. 1.], [1. 1.]]
# arange 와 linspace
arange = np.arange(0, 10, 2) # [0 2 4 6 8]
linspace = np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1. ]
# 랜덤 배열 생성
rand = np.random.random((2, 2)) # Random values [0, 1)
randn = np.random.randn(2, 2) # Standard normal distribution
randint = np.random.randint(0, 10, (2, 2)) # Random integers
3. array의 상태 확인
shape = arr2.shape # (2, 2)
dim = arr2.ndim # 차원 (2)
dtype = arr2.dtype # 데이터 타입 (e.g., int32, float64)
size = arr2.size # Total number of elements (4)
4. 기본적인 연산
# 요소별 연산
sum_arr = arr1 + arr1 # [2 4 6]
prod_arr = arr1 * 2 # [2 4 6]
# 집계 함수
arr = np.array([1, 2, 3, 4])
total = np.sum(arr) # 10
mean = np.mean(arr) # 2.5
max_val = np.max(arr) # 4
min_val = np.min(arr) # 1
cum_sum = np.cumsum(arr) # array([1, 3, 6, 10])
arg_max = np.argmax(arr) # 3
# 축 기반 연산 (2차원 배열)
matrix = np.array([[1, 2], [3, 4]])
row_sum = np.sum(matrix, axis=1) # [3 7]
col_sum = np.sum(matrix, axis=0) # [4 6]
# 행렬 곱셈 (Matrix multiplication)
A = [[1, 1], [0, 1]]
B = [[2, 0], [3, 4]]
mat_mul = A @ B # [[5, 4], [3, 4]]
5. 인덱싱과 슬라이싱
# 1차원 배열
arr = np.array([10, 20, 30, 40, 50])
value = arr[2] # 30
slice_arr = arr[1:4] # [20 30 40]
# 2차원 배열
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
value = matrix[1, 2] # 6
row = matrix[0, :] # [1 2 3]
col = matrix[:, 1] # [2 5 8]
sub_matrix = matrix[0:2, 1:3] # [[2 3], [5 6]]
# Boolean 인덱싱
bool_arr = matrix > 5 # [[False False False], [False False True], [True True True]]
filtered = matrix[matrix > 5] # [6 7 8 9]
6. Array 조작
# 형태 변경
# reshape : 원본 유지, 새로운 데이터 생성
arr = np.arange(6).reshape(2, 3) # [[0 1 2], [3 4 5]]
# resize : 원본 변형, 메모리 관리에 유리
arr = np.arange(6).resize(2, 3) # [[0 1 2], [3 4 5]]
# 전치 행렬
transposed = np.transpose(arr) # [[0 3], [1 4], [2 5]]
# Flatten
flattened = arr.flatten() # [0 1 2 3 4 5]
# 배열 연결
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
concatenated = np.concatenate([arr1, arr2]) # [1 2 3 4 5 6]
# 배열 쌓기
stacked_v = np.vstack([arr1, arr2]) # 수직으로 쌓기
stacked_h = np.hstack([arr1, arr2]) # 수평으로 쌓기
반응형
'데이터 분석' 카테고리의 다른 글
<파이썬 데이터 분석가 되기 - 4주차> 데이터 시각화 라이브러리, 시본 (1) | 2025.02.09 |
---|---|
데이터 시각화, 갑자기 한글 폰트가 깨진다면? (1) | 2025.02.02 |
<파이썬 데이터 분석가 되기 - 3주차> 데이터 시각화 라이브러리, 맷플롯립 - 2 (2) | 2025.02.02 |
<파이썬 데이터 분석가 되기 - 3주차> 데이터 시각화 라이브러리, 맷플롯립 - 1 (0) | 2025.02.02 |
<파이썬 데이터 분석가 되기 - 2주차> 02장. 데이터 처리 라이브러리, 판다스 (0) | 2025.01.26 |