NaN을 확인하는 방법


float('nan')이 에러를 내질 않고 float타입 nan을 return해서 이 값으로 뭘 처리하려고 하면 다 이상한 결과가 뜹니다.

조건문으로 'nan'을 확인해주려고 하는데 어떻게 해야 될까요?

  • 2016년 01월 21일에 작성됨

조회수 531


1 답변


좋아요
0
싫어요
채택취소하기

1. math.isnan() - 2.6이상

math.isnan()은 float이 NaN인지 아닌지 확인해 줍니다.

import math
x=float('nan')
math.isnan(x)

2. numpy.isnan(float) - 2.5이상

math.isnan()과 동일하게 float이 NaN인지 아닌지 확인해 줍니다.

import numpy
x=float('nan')
numpy.isnan(x)

3. 그 미만이라면 - 사용자가 직접 정의

IEEE standard에 따르면 NaN valueNaN value끼리 비교하면 항상 false라고 합니다. 이를 이용해서 함수를 정의하면

def isNaN(num):
    return num != num
x=float('nan')
isNaN(x)
  • 2016년 01월 21일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close