본문 바로가기
  • Hello_
Python/Numpy

[Python] np.nan으로 nan 생성하기

by LDwDL 2023. 2. 1.
728x90
반응형

본 포스팅에서는 nan 값의 정의와 np.nan에 활용법에 대해 살펴보겠다.

 

nan의 정의

nan 값은 "not a number"의 줄임말로 컴퓨터로는 표현할 수 없는 숫자를 나타낼 때 사용된다.

뿐만 아니라 누락되거나 정의되지 않은 데이터를 나타내는 데 사용되는 특수 부동 소수점 값 (floating-point value)이다.

 

따라서 nan 값은 어떠한 연산을 하던 nan과 관련된 연산은 nan을 반환한다. 이를 통해 수치 계산에서 누락된 데이터를 쉽게 처리할 수 있다.

 

np.nan

np.nan은 nan 값을 생성하는 함수로써 float('nan')과 동일한 역할을 한다.

 

만약 'a'와 같이 배열 내에 3번째 인덱스에 nan값이 포함되어 있다고 해보자. 이때 해당 인덱스에 np.nan을 기입하여 nan을 추가하면 된다.

import numpy as np

a = np.array([1, 2, np.nan, 4, 5])

print(a)
# [ 1. 2. nan 4. 5.]

 

이번에는 'b'라는 배열 내에 4번째 인덱스가 nan이 될 수 있도록 선언하고, 'a'와 'b'를 연산하여 nan값의 연산 법칙을 살펴보자.

b = np.array([6, 7, 8, np.nan, 10])

print(a + b) # [  7.   9.  nan  nan  15.]
print(a * b) # [  6.  14.  nan  nan  50.]

위 예시와 같이 nan 값은 어떠한 연산을 하던 nan 값을 반환하는 걸 알 수 있다.

 

mean, max, min, median 등의 함수를 사용해도 nan 값이 반환된다.

print(np.mean(a)) # nan
print(np.mean(b)) # nan

 

다만, 기본적인 함수에서 사용하지 못할 뿐 nan 값은 데이터를 다루다 보면 반드시 발생되기 때문에 numpy에서는 np.isan(), np.nanmin(), np.nanmax() 등과 같은 nan 값을 처리하기 위한 여러 함수를 제공한다.

 

 

 

728x90
반응형

댓글