Introduction to np.nan and np.inf in NumPy

NumPy provides special floating-point values: np.nan (Not a Number) and np.inf (Infinity) to handle undefined and infinite numerical operations.

1. Importing NumPy

Before using NumPy, it needs to be imported.

            import numpy as np
        

2. Understanding np.nan (Not a Number)

np.nan represents an undefined or unrepresentable value, such as 0/0 or the result of an invalid mathematical operation.

            a = np.nan
            print(a)  # Output: nan
            print(np.isnan(a))  # Output: True
        

3. Operations Involving np.nan

Any arithmetic operation with np.nan results in np.nan.

            print(np.nan + 5)  # Output: nan
            print(np.nan * 2)  # Output: nan
            print(np.nan == np.nan)  # Output: False
        

4. Handling np.nan

To check for np.nan values in an array, use np.isnan(), and to replace them, use np.nan_to_num().

            arr = np.array([1, 2, np.nan, 4])
            print(np.isnan(arr))  # Output: [False False  True False]
            print(np.nan_to_num(arr))  # Output: [1. 2. 0. 4.]
        

5. Understanding np.inf (Infinity)

np.inf represents positive infinity, and -np.inf represents negative infinity.

            inf_value = np.inf
            neg_inf_value = -np.inf
            print(inf_value)  # Output: inf
            print(neg_inf_value)  # Output: -inf
        

6. Operations Involving np.inf

Arithmetic operations with np.inf follow mathematical rules of infinity.

            print(np.inf + 100)  # Output: inf
            print(np.inf * 2)  # Output: inf
            print(np.inf / np.inf)  # Output: nan
        

7. Handling np.inf

To check for infinite values in an array, use np.isinf().

            arr = np.array([1, np.inf, -np.inf, 4])
            print(np.isinf(arr))  # Output: [False  True  True False]
        

Conclusion

NumPy provides np.nan and np.inf to handle undefined and infinite numerical operations. Proper handling of these values ensures robust numerical computations.





Advertisement