Sobes.tech
Middle

What is the difference between NaN and None in Python?

sobes.tech AI

Answer from AI

In Python, None is a special object that indicates the absence of a value or emptiness. It is often used for initializing variables or as a return value of functions when there is no result.

NaN (Not a Number) is a special floating-point value defined by the IEEE 754 standard, representing a "non-numeric" value. In Python, NaN is commonly encountered in data processing libraries such as NumPy or pandas, and is used to denote missing or invalid numerical data.

Main differences:

  • None is a Python object not related to numeric types.
  • NaN is a floating-point numeric value that behaves in a special way during comparisons (e.g., NaN != NaN).

Example:

import math

x = None
print(x is None)  # True

y = float('nan')
print(math.isnan(y))  # True
print(y == y)  # False, NaN is not equal to itself

In data processing contexts, None is often used to indicate the absence of a value in Python objects, while NaN is used for missing numerical data in arrays and tables.