티스토리 뷰

 

Numpy 배열의 연산

배열의 각 요소에 대해 연산을 수행한다. 이를 요소 별 연산 (element-wise operation) 이라고 한다.

import numpy as np

a = np.array([1,2,3,4,5])
b = np.array([10,10,10,10,10])

print(a+b) # [11 12 13 14 15]

print(a/b) # [0.1 0.2 0.3 0.4 0.5]

print(a*b) #[10 20 30 40 50]

print(a@b) # 150

print(np.dot(a,b)) # 150

print(a*a.T) # [ 1  4  9 16 25]

 

기본 행렬 곱 연산처럼 하고 싶다면, 행렬 곱(내적)의 연산자인 @ 연산자나 np.dot()을 사용하면 된다.

또한, 전치 연산은 .T를 사용하면 된다.

 

브로드캐스팅(Broadcasting)

NumPy에서 서로 다른 크기(shape)의 배열끼리도 산술 연산을 할 수 있도록 자동으로 모양을 맞춰주는 기능이다.

 

쉽게 말하면, 작은 배열을 자동으로 "늘려서" 큰 배열과 같은 모양으로 만든 뒤 연산하는 것이죠. 이 과정에서 실제로 데이터가 복사되는 것이 아니라, 마치 늘어난 것처럼 "논리적으로" 처리되기 때문에 메모리를 절약하고 연산 속도도 빠다.

a = np.full(3,1)
b = np.array([2])
print(a+b) # [3 3 3]

a = np.full((2,3),2)
b = np.array([[2],[4]])
print(a+b) # [[4 4 4]
           #  [6 6 6]]

a = np.full((2,3,4),2)
b = np.array([[(0,),(1,),(2,)],[(3,),(4,),(5,)]])
print(a*b) 
# [[[ 0  0  0  0]
#   [ 2  2  2  2]
#   [ 4  4  4  4]]
# 
#  [[ 6  6  6  6]
#   [ 8  8  8  8]
#   [10 10 10 10]]]

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함