728x90
반응형
넘파이의 산술 연산
x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])
print(x + y) # 원소별 덧셈
print(x - y) # 원소별 뺄셈
print(x * y) # 원소별 곱셈
print(x / y) # 원소별 나눗셈
---
[3. 6. 9.]
[-1. -2. -3.]
[ 2. 8. 18.]
[0.5 0.5 0.5]
여기서 주의할 점은 배열 x, y의 원소 수가 같음. 원소 수가 다르면 오류가 발생함
넘파이의 N차원 배열
A = np.array([[1, 2], [3, 4]])
print(A)
print(A.shape)
print(A.dtype)
# 결과
[[1 2]
[3 4]]
(2, 2)
int64
B = np.array([[3, 0], [0, 6]])
print(A + B)
print(A * B)
# 결과
[[ 4 2]
[ 3 10]]
행렬과 스칼라값의 산술 연산도 가능
이때도 배열과 마찬가지로 브로드캐스트 기능 작동함
print(A)
# 결과
[[1 2]
[3 4]]
print(A *10)
# 결과
[[10 20]
[30 40]]
브로드캐스트
넘파이에서는 형상이 다른 배열끼리도 계산할 수 있음
앞의 예에서 2*2 행렬에 A 스칼라값 10을 곱했을때, 10이라는 스칼라값이 2*2 행렬로 확대된 후 연산이 이루어짐 => 이게 브로드캐스트!
A = np.array([[1, 2], [3, 4]])
B = np.array([[10], [20]])
print(A * B)
# 결과
[[10 20]
[60 80]]
원소 접근
X = np.array([[51, 55], [14, 19], [0, 4]])
print(X)
print(X[0])
print(X[0][1]) # (0, 1) 위치의 원소
# 결과
[[51 55]
[14 19]
[ 0 4]]
[51 55]
55
for row in X:
print(row)
# 결과
[51 55]
[14 19]
[0 4]
X = X.flatten() # X를 1차원 배열로 변환(평탄화)해 한번에 여러 원소 접근 가능
print(X)
# 결과
[51 55 14 19 0 4]
print(X[np.array([0, 2, 4])]) # 인덱스가 0, 2, 4인 원소 얻기
# 결과
[51 14 0]
print(X > 15) # X의 값 중에 15 보다 큰 값 확인
# 결과
[ True True False True False False]
print(X[X>15]) # X에서 15 보다 큰 값만 구하기
# 결과
[51 55 19]
반응형
'머신러닝&딥러닝 > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
| 2장 [Perceptron] 단순한 논리 회로(AND, NAND, OR) (0) | 2025.08.31 |
|---|---|
| 2장 [Perceptron] 퍼셉트론 정의 (2) | 2025.08.30 |
| 1장 [Python] matplotlib (0) | 2025.08.29 |
| 1장 [Python] 파이썬의 일반 배열과 넘파이 배열 비교 (1) | 2025.08.27 |
| 1장 [Python] 기초 문법 정리(if/else, for, 함수, 클래스) (0) | 2025.08.27 |