Python에서 무한대 및 숫자가 아닌 값(NaN) 표현하는 법
Python에서는 숫자로 표현할 수 없는 특수한 값들을 처리하기 위해 무한대(Infinity)와 숫자가 아닌 값(NaN: Not a Number)을 제공합니다. 이 값들은 과학, 통계, 수학 연산에서 자주 사용되며, Python의 float
타입과 관련이 깊습니다. 이번 포스팅에서는 무한대와 NaN 값을 생성하고 사용하는 방법을 알아보겠습니다.
1. 무한대(Infinity)란?
무한대는 크기 제한이 없는 값을 표현하며, 주로 수학 계산에서 등장합니다. Python에서는 양의 무한대(∞)와 음의 무한대(-∞)를 모두 지원합니다.
1.1. 무한대 생성하기
Python에서 무한대는 float()
함수 또는 math
모듈을 사용하여 생성할 수 있습니다.
# 양의 무한대
positive_inf = float('inf')
# 음의 무한대
negative_inf = float('-inf')
print(positive_inf) # 출력: inf
print(negative_inf) # 출력: -inf
1.2. 무한대의 속성
무한대는 다음과 같은 특성을 가집니다:
- 어떤 유한한 숫자보다 항상 크거나 작음.
- 무한대와의 산술 연산은 다시 무한대 또는 NaN을 생성.
# 무한대 비교
print(positive_inf > 1e10) # 출력: True
print(negative_inf < -1e10) # 출력: True
# 무한대와의 연산
print(positive_inf + 1000) # 출력: inf
print(negative_inf - 1000) # 출력: -inf
print(positive_inf - positive_inf) # 출력: nan
2. NaN (Not a Number)이란?
NaN은 "숫자가 아님"을 의미하며, 잘못된 수학 연산 또는 정의되지 않은 연산의 결과로 나타납니다. NaN은 주로 데이터 분석이나 통계 계산에서 누락된 값이나 오류를 나타내는 데 사용됩니다.
2.1. NaN 생성하기
NaN 값은 float()
또는 math
모듈을 통해 생성할 수 있습니다.
# NaN 생성
nan_value = float('nan')
print(nan_value) # 출력: nan
2.2. NaN의 속성
NaN 값은 특이한 속성을 가지고 있습니다:
- NaN은 어떤 값과도 같지 않음 (자기 자신 포함).
- NaN과의 연산 결과는 항상 NaN.
# NaN의 속성
nan_value = float('nan')
print(nan_value == nan_value) # 출력: False
print(nan_value != nan_value) # 출력: True
# NaN과의 연산
print(nan_value + 100) # 출력: nan
3. 무한대와 NaN의 활용
무한대와 NaN은 다양한 분야에서 활용됩니다.
3.1. 무한대를 활용한 계산
무한대는 극한값을 처리하거나 범위를 제한하지 않는 경우에 사용됩니다.
import math
# 무한대를 활용한 최대값 비교
values = [1, 2, 3, float('inf')]
print(max(values)) # 출력: inf
# 극한값 계산
x = -1000
y = math.exp(x) if x > -float('inf') else 0
print(y) # 출력: 0
3.2. NaN을 활용한 데이터 분석
NaN은 누락된 데이터를 나타낼 때 유용합니다.
import math
# NaN 값 확인
data = [1, 2, float('nan'), 4]
cleaned_data = [x for x in data if not math.isnan(x)]
print(cleaned_data) # 출력: [1, 2, 4]
4. 주의사항
- NaN 비교: NaN은 자기 자신과도 같지 않으므로
math.isnan()
또는numpy.isnan()
함수를 사용해 확인해야 합니다. - 무한대 연산: 무한대 간의 연산 결과는 NaN이 될 수 있으므로 주의해야 합니다.
# NaN 확인
import math
nan_value = float('nan')
print(math.isnan(nan_value)) # 출력: True
# numpy를 활용한 NaN 확인
import numpy as np
nan_array = np.array([1, 2, np.nan, 4])
print(np.isnan(nan_array)) # 출력: [False False True False]
5. 마무리
Python의 무한대와 NaN은 숫자로 표현할 수 없는 특수한 값들을 처리하는 강력한 도구입니다. 무한대는 극한 값이나 연산 범위를 나타내고, NaN은 데이터의 누락이나 정의되지 않은 연산 결과를 나타냅니다. 이러한 값들을 올바르게 이해하고 사용하면 수학적, 과학적 계산뿐만 아니라 데이터 분석에서도 큰 도움을 받을 수 있습니다.
'플그래밍 > 파이써언' 카테고리의 다른 글
Python: 문자열 이스케이프 처리하는 법 (1) | 2024.12.01 |
---|---|
Python: 문자열 타입 다루는 법 (1) | 2024.12.01 |
Python: 부동소수점(float) 타입 사용하는 법 (1) | 2024.12.01 |
Python: 불리언 연산 이해하기 (1) | 2024.12.01 |
Python: 여러 변수 간 비교 연산하기 (1) | 2024.12.01 |