Python/Numpy

[Numpy] 파이썬 원하는 자릿수까지 반올림, 올림, 내림 총정리

jimmy_AI 2022. 1. 3. 23:31
반응형

파이썬 넘파이 반올림, 올림, 내림 함수 : np.round, np.ceil, np.floor, np.trunc

이번 포스팅에서는 파이썬 넘파이에서 원하는 소수점 자릿수까지

반올림, 올림, 내림을 할 수 있는 함수들의 사용법과 예시에 대해서

정리해보도록 하겠습니다.

 

넘파이 반올림 함수 : np.round, np.around

먼저, 넘파이에서 반올림을 지원하는 np.round 함수를 살펴보겠습니다.

참고로, np.around 함수는 np.round와 완전히 동일한 함수라고 보셔도

무관하며, 여기서는 np.round로 예시 코드를 보여드리겠습니다.

 

np.round 함수는 np.round(숫자, 원하는 자릿수) 형태로 input을 주시면 되며,

원하는 자릿수를 지정하지 않으면, 기본적으로 일의 자리까지 반올림이 됩니다.

import numpy as np

# 숫자 1개 대상 예시
np.round(3.43) # 3.0

# 소수점 첫째자리 반올림
np.round(3.43, 1) # 3.4

# 십의자리까지 반올림
np.round(13.5, -1) # 10.0

 

np.round 함수에서는 array 전체의 값을 대상으로 반올림을 진행하는 것도

가능합니다. 아래 예시를 살펴보겠습니다.

참고로, 뒤에서 설명할 올림, 내림과 관련된 함수도 모두 array를

input으로 받는 것이 가능합니다.

반응형

넘파이 올림 함수 : np.ceil

일의 자리를 기준으로 올림을 진행하는 함수는 np.ceil 함수입니다.

다만, 이 함수는 올림을 진행하는 자릿수를 따로 지정하는 것은 불가능한데,

 

np.ceil(원하는 수 * (10 ** 자릿수)) / (10 ** 자릿수) 형태로 간접적으로

원하는 소수점 자릿수까지 올림을 진행하는 것은 가능합니다.

# 일의자리까지 올림
np.ceil(3.43) # 4.0
np.ceil(5) # 5.0

# 소수점 첫째자리까지 올림
# np.ceil(3.43, 1) 형태는 미지원

# 아래 형태로 사용
np.ceil(3.43 * 10) / 10 # 3.5

# 소수점 둘째자리까지 올림
np.ceil(3.433 * 100) / 100 # 3.44

np.ceil(3.43, 1) 형태는 불가능하지만,

np.ceil(3.43 * 10) / 10 형태로는 사용이 가능함을 참고해주세요.

 

 

넘파이 내림(버림) 함수 : np.floor vs np.trunc

넘파이에서 소수점 내림(버림)을 진행하는 함수는 np.floor와 np.trunc가

있습니다. 두 함수의 사용법은 np.ceil과 동일하며,

일의 자릿수가 아닌 다른 자릿수까지 내림을 원할 경우에는

np.ceil처럼 간접적인 방법으로 진행해야 합니다.

 

np.floor과 np.trunc의 차이는 음수를 input으로 받았을 때 나타나게 됩니다.

아래 예시 코드의 결과를 살펴보며 이해해보도록 하겠습니다.

# 일의자리까지 버림
np.floor(2.56) # 2.0
np.trunc(2.56) # 2.0

# 소수점 첫째자리까지 버림
np.floor(2.56 * 10) / 10 # 2.5
np.trunc(2.56 * 10) / 10 # 2.5

# 음수에서 버림 예시
np.floor(-1.5) # -2.0
np.trunc(-1.5) # -1.0

-1.5를 일의 자리까지 내림한 결과가 np.floor에서는 -2가 나왔지만,

np.trunc에서는 -1이 나왔음을 확인할 수 있었습니다.