Check for NaN values in Python

David Y.

The Problem

I sometimes see the value NaN (Not a Number) when working with floats in Python. How can I check whether a given value is NaN?

The Solution

The best way to do this is by using the isnan() function from Python’s built-in math library:

import math nan = float('nan') zero = 0 one = 1 print(math.isnan(nan)) # will print True print(math.isnan(zero)) # will print False print(math.isnan(one)) # will print False

Note that isnan() will throw a TypeError if given a non-numeric value. Thus, a more robust implementation might look like this:

import math def is_nan(value): try: return math.isnan(value) except TypeError: return False nan = float('nan') zero = 0 one = 1 hello = "Hello!" print(is_nan(nan)) # will print True print(is_nan(zero)) # will print False print(is_nan(one)) # will print False print(is_nan(hello)) # will print False
Join the discussionCome work with us
Share on Twitter
Bookmark this page
Ask a questionImprove this Answer

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedin
© 2023 • Sentry is a registered Trademark
of Functional Software, Inc.