브로드캐스트 (Broadcasting)
파이썬에서 브로드캐스트는 주로 NumPy 배열에서 사용되는 개념으로, 다양한 크기의 배열들 간에 연산을 가능하게 만든다.
크기가 다른 배열끼리 연산할 때, 작은 배열이 큰 배열의 크기게 맞게 자동으로 확장되어 연산이 이루어지도록 도와준다.
즉, 작은 배열이 큰 배열에 맞게 확장되거나 "브로드캐스트" 되어 연산을 수행한다.
기본 연산
import numpy as np
a = np.array([10, 20, 30])
b = np.array([1, 2, 3])
c = np.array([1, 2, 3, 4, 5]) # a와 c를 연산하면 ValueError가 발생
print(a + b) # [11 22 33]
print(a - b) # [9 18 27]
print(a * b) # [10 40 90]
print(a / b) # [10. 10. 10.]
print(a % b) # [0 0 0]
print(a + 5) # [15, 25, 35]
data1 = np.array([1, 2, 3]) # 1D 배열
data2 = np.array([
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]) # 2D 배열
print(data1[0]) # 1
print(data2[0]) # [10 20 30]
print(data2[0, 2]) # 30
print(data2[0][2]) # 30
print(data1[1] * 10) # 20
print(data2[1] * 10) # [400 500 600]
print(data1 + data2) # [[11 22 33] [41 52 63] [71 82 93]]
조건문
arr = np.array([10, 20, 30, 40, 50])
cond1 = arr > 10
cond2 = arr < 40
print(arr > 20) # [False False True True True]
print(cond1) # [False True True True True]
print(cond2) # [ True True True False False]
print(arr[cond1 & cond2]) # [20 30]
print(arr[cond1 & cond2] / 10) # [2. 3.]
함수와 메서드
- axis=0: 열 방향(세로) 계산
- axis=1: 행 방향(가로) 계산
arr = np.array([10, 20, 30, 40, 50])
print("합계:", arr.sum()) # 150
print("최솟값:", arr.min()) # 10
print("최댓값:", arr.max()) # 50
print("평균:", arr.mean()) # 30.0
print("표준편차:", arr.std()) # 14.142135623730951
print("분산:", arr.var()) # 200.0
arr_2d = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print("전체 합계:", arr_2d.sum()) # 45
print("열 방향 합계:", arr_2d.sum(axis=0)) # [12 15 18]
print("행 방향 합계:", arr_2d.sum(axis=1)) # [ 6 15 24]
print("열 방향 최댓값:", arr_2d.max(axis=0)) # [7 8 9]
print("행 방향 최댓값:", arr_2d.max(axis=1)) # [3 6 9]
'Python3' 카테고리의 다른 글
[파이썬] Serise(시리즈) 값 수정, 추가, 삭제 (0) | 2025.02.25 |
---|---|
[파이썬] Serise(시리즈) 값 선택하기 - Indexing(인덱싱), Slicing(슬라이싱) (0) | 2025.02.17 |
[파이썬] Serise(시리즈) 생성 (0) | 2025.02.17 |
[파이썬] NumPy(넘파이) 기본 개념 (0) | 2025.02.13 |