본문 바로가기

Programming/Python

numpy 브로드캐스팅

반응형

브로드캐스팅

Broadcasting(브로드캐스팅) : 다른 형상 간 연산이 가능하도록 하는 것.

 

$$\begin{align}A+B=\begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
10 & 11 & 12
\end{pmatrix}+\begin{pmatrix}
1 & 0 & 1 
\end{pmatrix}
= \begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
10 & 11 & 12 
\end{pmatrix}+\begin{pmatrix}
1 & 0 & 1 \\
1 & 0 & 1 \\
1 & 0 & 1 \\
1 & 0 & 1 
\end{pmatrix}\end{align}$$

 

 

이렇게 배열B가 A에 맞게 열을 저절로 채워서 연산이 가능하도록 한 것이 브로드캐스팅이다.

파이썬으로는 아래와 같이 계산할 수 있다.

a = np.array(np.arange(1, 13)).reshape(4, 3)
b = np.array([1,0,1])
print(a + b)

 

양방향 브로드캐스팅

$$\begin{align*}A+B=\left(\begin{array}{c}0\\ 1\\2 \end{array}\right)
+\begin{pmatrix}0 & 1 & 2 
\end{pmatrix}
= \begin{pmatrix}
0 & 0 & 0 \\
1 & 1 & 1 \\
2 & 2 & 2 \\
\end{pmatrix}+\begin{pmatrix}
0 & 1 & 2 \\
0 & 1 & 2 \\
0 & 1 & 2 \\
\end{pmatrix}
=\begin{pmatrix}
0 & 1 & 2 \\
1 & 2 & 3 \\
2 & 3 & 4 \\
\end{pmatrix}\end{align*}$$

 

양방향 브로드캐스팅은 각각 갖춰진 행열에 서로 맞춰서 연산하게 된다. 

 

 

 

 

배열의 축 다루기

  • axis = 0 : 행(row)
  • aiis = 1 : 열(column)

 

 

 

 

반응형

'Programming > Python' 카테고리의 다른 글

%matplotlib inline의 의미  (0) 2022.01.18
numpy.random 모듈 난수 배열의 생성  (0) 2022.01.14
Numpy 튜토리얼  (0) 2022.01.14
함수와 뉴런, 인공신경망의 구현  (0) 2022.01.14
파이썬 Numpy 다차원 배열  (0) 2022.01.06