브로드캐스팅
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 |