Python NumPy For Your Grandma - 3.6 infinity

In this section, we’ll see how you can represent infinite values in NumPy.

Like nan, numpy reserves floating point constants for infinity and negative infinity that behave specially. If you want to insert these values directly, you can use np.inf and np.NINF

import numpy as np

np.array([np.inf, np.NINF])
## array([ inf, -inf])

More commonly, these values occur when you divide by 0.

np.array([-1, 1])/0
## array([-inf,  inf])
## <string>:1: RuntimeWarning: divide by zero encountered in true_divide

All the special behaviors you might expect for these values exist such as,

# multiplying infinity by a positive constant equals infinity
np.inf * 22

# adding infinity to infinity equals infinity
## inf
np.inf + np.inf

# subtracting infinity from infinity has undefined behavior and produces nan
## inf
np.inf - np.inf

# dividing infinity by infinity has undefined behavior and produces nan
## nan
np.inf / np.inf
## nan

Unlike nan, positive infinity equals positive infinity and negative infinity equals negative infinity.

np.inf == np.inf
## True
np.NINF == np.NINF
## True

So, if you have an array with infinite values like this one, you can find them just by checking ==np.inf or ==np.NINF.

foo = np.array([4.4, np.inf, 1.0, np.NINF, 3.1, np.inf])

foo == np.inf
## array([False,  True, False, False, False,  True])
foo == np.NINF
## array([False, False, False,  True, False, False])

Alternatively, you can also use the functions isposinf(), isneginf() and isinf().

## array([False,  True, False, False, False,  True])
## array([False, False, False,  True, False, False])
## array([False,  True, False,  True, False,  True])

Course Curriculum

  1. Introduction
    1.1 Introduction
  2. Basic Array Stuff
    2.1 NumPy Array Motivation
    2.2 NumPy Array Basics
    2.3 Creating NumPy Arrays
    2.4 Indexing 1-D Arrays
    2.5 Indexing Multidimensional Arrays
    2.6 Basic Math On Arrays
    2.7 Challenge: High School Reunion
    2.8 Challenge: Gold Miner
    2.9 Challenge: Chic-fil-A
  3. Intermediate Array Stuff
    3.1 Broadcasting
    3.2 newaxis
    3.3 reshape()
    3.4 Boolean Indexing
    3.5 nan
    3.6 infinity
    3.7 random
    3.8 Challenge: Love Distance
    3.9 Challenge: Professor Prick
    3.10 Challenge: Psycho Parent
  4. Common Operations
    4.1 where()
    4.2 Math Functions
    4.3 all() and any()
    4.4 concatenate()
    4.5 Stacking
    4.6 Sorting
    4.7 unique()
    4.8 Challenge: Movie Ratings
    4.9 Challenge: Big Fish
    4.10 Challenge: Taco Truck
  5. Advanced Array Stuff
    5.1 Advanced Array Indexing
    5.2 View vs Copy
    5.3 Challenge: Population Verification
    5.4 Challenge: Prime Locations
    5.5 Challenge: The Game of Doors
    5.6 Challenge: Peanut Butter
  6. Final Boss
    6.1 as_strided()
    6.2 einsum()
    6.3 Challenge: One-Hot-Encoding
    6.4 Challenge: Cumulative Rainfall
    6.5 Challenge: Table Tennis
    6.6 Challenge: Where’s Waldo
    6.7 Challenge: Outer Product

Additional Content

  1. Python Pandas For Your Grandpa
  2. Neural Networks For Your Dog
  3. Introduction To Google Colab