Python/Numpy

[Python] 파이썬 Numpy 기본 수학 연산 - mod, reciprocal (나머지, 역수)

나비🦋 2024. 2. 28. 17:21
반응형

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

이번 포스팅은 파이썬 numpy 라이브러리의 기본 수학 연산 메소드인 “mod”와 “reciprocal”에 관한 내용입니다.

이 포스팅으로 numpy의 기본 수학 연산 함수 소개는 끝낼 생각입니다.

순서대로 mod, reciprocal의 기능과 예제를 살펴보겠습니다!


numpy.mod

수학을 조금이라도 공부해 보신 분들은 모두 잘 아시겠지만, mod는 나눗셈에서의 나머지를 의미하는 약자입니다.

numpy에서도 마찬가지로, mod는 나머지를 반환하는 함수입니다.

실제 프로그래밍에서 나머지 연산은 배수 관계를 다룰 때 많이 쓰이는데요, numpy에서는 요소 단위로 계산하기 때문에 mod의 인수에 숫자와 행렬이 모두 들어갈 수 있습니다.

아래서 두 가지 예제를 보여드릴게요.

import numpy as np

A = np.mod([9, 5], [3, 4])
print(A)

이 경우는 mod의 두 인수에 모두 벡터가 들어갔습니다. 요소 단위로 계산하면, 9 나누기 3의 나머지는 0이고, 5 나누기 4의 나머지는 1입니다.

따라서 출력 결과는 아래와 같습니다.

[0, 1]


다른 예시 하나를 더 들어볼게요. 두 인수에 행렬과 숫자가 모두 사용되는 예시입니다.

import numpy as np

A = np.array([10, 11, 12, 13, 14, 15])
print(np.mod(A, 5))

이번에는 행렬을 숫자로 나눠 보았습니다. 숫자 5로 나누었기 때문에, 출력 결과는 아래와 같아요.

[0,1,2,3,4,0]





numpy.reciprocal

Numpy의 reciprocal 함수는 주어진 입력의 역수를 출력하는 함수입니다. 단일 숫자와 행렬 모두 인수에 들어갈 수 있고요, 함수가 요구하는 인수 개수는 1개입니다.

그런데 reciprocal을 사용하실 때 주의해야 할 점이 있습니다!

숫자를 입력하실 때, 반드시 실수(float) 자료형으로 입력하셔야 합니다. reciprocal은 정수에 특화된 메소드가 아니기 때문에, 정수(integer)를 입력할 경우 원하는 결과를 얻을 수 없습니다.

예제 같이 보실게요!

import numpy as np

A = np.reciporcal(2.0)
B = np.reciprocal(2)

print(A)
print(B)

Float, integer 모두 입력해서 프로그램 돌려봤습니다.

0.5
0

두 번째 결과가 조금 이상하죠? 방금 위에서 설명드렸던 대로, 정수 자료형으로 입력해서 오류가 발생한 것입니다. 반드시 실수로 입력해주세요!


import numpy as np

print(np.reciprocal([1.0, 2.0, 3.0]))
print(np.reciprocal([1,2,3]))
[1.0, 0.5, 0.333333]
[1, 0, 0]

벡터나 행렬을 입력하실 때도 마찬가지로 실수 자료형으로 입력해 주셔야 제대로 작동합니다!




네! 여기까지 numpy의 mod와 reciprocal 함수에 대해 알아 보았습니다.
긴 글 읽어주셔서 감사드리며, 도움이 되셨다면 구독과 좋아요 부탁드립니다! ✨

반응형