데이터 분석을 하는데 행렬 연산을 하는 경우가 종종 있습니다.
먼저 행렬이 무엇인지 그리고 행렬의 꼴에 대해서 먼저 알아보도록 하겠습니다.
괄호 안의 가로 방향의 숫자 1 4 방향을 '행'이라고 하고, 세로 방향의 4 5 6 방향을 '열'이라고 합니다.
그래서 위의 행렬은 2 X 3 행렬이라고 합니다.
그러면 만약 아래와 같은 행렬의 모양은 어떨까요?
맞습니다. 3 X 1 행렬입니다.
만약에 모양이 다른 두 개의 행렬은 더하거나 뺄 수 있을까요? 행렬에서는 불가능한 연산입니다.
행렬의 덧셈과 뺄셈에서는 같은꼴의 행렬끼리만 덧셈과 뺄셈을 할 수 있습니다.
위의 예제는 2X2 행렬끼리의 덧셈을 보여주고 있습니다.
하지만 파이썬 넘파이에서는 꼭 같은 꼴의 행렬이 아니더라도 연산을 할 수 있도록 도와주고 있습니다.
이것을 브로드캐스팅(Broadcasting)이라고 합니다.
예를 들면 2x2 행렬과 2x1 행렬을 합을 더할 수 있습니다.
단 조건은 저 차원의 행렬 중 하나의 배열의 차원이 1 이하여야 됩니다.
아래의 코드를 참고해 보시면서 이해하면 좋을 것 같습니다.
import numpy as np
matrix1 = np.array([8, 5])
matrix2 = np.array([7, 5],
[4, 9])
matrix1 + matrix2
array([15, 10],
[12, 14])
#또 다른 예시 하나 더!
matrix3 = np.random.randint(1,10, size=(1,3))
matrix4 = np.random.randint(1,10, size=(2,3))
matrix3
array([[9, 3, 6]])
matrix4
array([[9, 3, 1],
[1, 1, 4]])
matrix3 + matrix4
array([[18, 6, 7],
[10, 4, 10]])
다음편에서 계속됩니다...👍👍👍
'플레이데이터 빅데이터 부트캠프 12기 > 기초수학 및 통계' 카테고리의 다른 글
기초 통계 (0) | 2022.08.01 |
---|---|
행렬연산과 브로드캐스팅(Broadcasting)(2) (3) | 2022.07.22 |