3.5 Ranges
A range is an array of numbers in increasing or decreasing order, each separated by a regular interval. Ranges are useful in a surprisingly large number of situations, so it is worthwhile to learn about them.
We will use the Numpy module, which we always rename as np
, like this:
import numpy as np
Ranges are defined using the np.arange
function, which takes either
one, two, or three arguments: a start, and end, and a ‘step’.
If you pass one argument to np.arange
, this becomes the end
value,
with start=0
, step=1
assumed. Two arguments give the start
and
end
with step=1
assumed. Three arguments give the start
, end
and step
explicitly.
A range always includes its start
value, but does not include its
end
value. It counts up by step
, and it stops before it gets to
the end
.
np.arange(end): An array starting with 0 of increasing consecutive integers, stopping before end.
np.arange(5)
array([0, 1, 2, 3, 4])
Notice how the array starts at 0 and goes only up to 4, not to the end value of 5.
np.arange(start, end): An array of consecutive increasing integers from start, stopping before end.
np.arange(3, 9)
array([3, 4, 5, 6, 7, 8])
np.arange(start, end, step): A range with a difference of step between each pair of consecutive values, starting from start and stopping before end.
np.arange(3, 30, 5)
array([ 3, 8, 13, 18, 23, 28])
This array starts at 3, then takes a step of 5 to get to 8, then another step of 5 to get to 13, and so on.
When you specify a step, the start, end, and step can all be either positive or negative and may be whole numbers or fractions.
np.arange(1.5, -2, -0.5)
array([ 1.5, 1. , 0.5, 0. , -0.5, -1. , -1.5])