Python/Numpy

[Python] 파이썬 Numpy 기본 수학 연산 - multiply, divide (곱셈, 나눗셈)

나비🦋 2024. 2. 27. 15:12
반응형

안녕하세요! 나비입니다 🦋

지난 포스팅에서는 add와 subtract에 대해 살펴보았는데요,

이번 포스팅에서는 이어서 파이썬 numpy(넘파이)의 기본 수학 연산 메소드, multily와 divide에 대해 알아보려고 합니다.

순서대로 예제 코드와 함께 살펴보겠습니다!



numpy.multiply

multiply(곱셈)의 의미에서 직관적으로 알 수 있듯이, multiply는 곱셈을 수행하는 함수입니다. 숫자끼리의 곱셈도 가능하고, 행렬끼리의 곱셈도 가능합니다.

그런데, multiply를 이용하여 행렬을 곱할 때 주의해야 할 점이 있습니다!

multiply는 내적(dot product)나 행렬곱(matrix product)를 반환하는 함수가 아닙니다. 대신, 같은 위치에 있는 요소끼리 곱한 결과를 제시합니다. 더 쉽게 이해하기 위해, 아래 코드를 참고하시기 바랍니다.

import numpy as np

A = np.array([1, 2, 3])
B = np.array([2, 3, 4])

print(np.multiply(A, B))

이제 출력값을 보실게요.

[2, 6, 12]

정말 말 그대로 원소끼리 곱했습니다. 즉, 선형대수학에서 말하는 행렬 계산과는 전혀 다르다는 것입니다.


다른 예시도 보여드릴게요.

import numpy as np

A = np.array([0, 1, 2])
B = np.array([[1, 2, 3], [4, 5, 6]])

print(np.multiply(A, B))

[[0, 2, 6], [0, 5, 12]]

출력 결과의 첫 번째 행에는 [0, 1, 2]와 [1, 2, 3]을 같은 위치의 원소끼리 곱한 array가 들어갑니다. 두 번째 행도 마찬가지고요.

이처럼, numpy의 multiply 함수는 선형대수학 행렬 계산이 아닙니다. 계산 방식이 전혀 다르다는 점, 알아두셨으면 좋겠습니다! (내적, 행렬곱 계산은 다른 포스팅에서 다뤄보겠습니다)




numpy.divide

divide 함수도 multiply와 같은 원리로 작동합니다. 계산이 곱셈에서 나눗셈으로 바뀌었을 뿐이죠. 원리는 위에서 읽으셔서 알고 계실 테니, 바로 코드로 넘어가 보겠습니다.

import numpy as np

A = np.array([1, 2, 3])
B = np.array([[1, 2, 3], [2, 4, 12]])

print(np.divide(B, A))

B를 A로 나누는 과정입니다.

[[1, 1, 1], [2, 2, 4]]


굳이 행렬이나 벡터가 아니라 숫자여도 같은 방식으로 연산 가능합니다.

 import numpy as np
 
 A = np.array([1,2,4,8])
 
 print(np.divide(A,2))
[0.5, 1, 2, 4]

예상하셨다시피,A의 각 원소들을 2로 나눈 결과를 출력합니다.



네! 여기까지 파이썬 numpy의 기본 연산 함수인 multiply와 divide를 알아보았습니다.
다음 포스팅도 연산 함수를 이어서 소개해 볼게요.

긴 글 읽어주셔서 감사드리며, 도움이 되셨다면 구독과 좋아요 부탁드려요! ✨



반응형