6.7. Array Slicing¶
Multiple values stored within an array can be accessed simultaneously with array slicing. To pull out a section or slice of an array, the colon operator :
is used when calling the index. The general form is:
<slice> = <array>[start:stop]
Where <slice>
is the slice or section of the array object <array>
. The index of the slice is specified in [start:stop]
. Remember Python counting starts at 0
and ends at n-1
. The index [0:2]
pulls the first two values out of an array. The index [1:3]
pulls the second and third values out of an array.
An example of slicing the first two elements out of an array is below.
import numpy as np
a = np.array([2, 4, 6])
b = a[0:2]
print(b)
[2 4]
On either sides of the colon, a blank stands for “default”.
[:2]
corresponds to[start=default:stop=2]
[1:]
corresponds to[start=1:stop=default]
Therefore, the slicing operation [:2]
pulls out the first and second values in an array. The slicing operation [1:]
pull out the second through the last values in an array.
The example below illustrates the default stop
value is the last value in the array.
import numpy as np
a = np.array([2, 4, 6, 8])
print(a)
b = a[1:]
print(b)
[2 4 6 8]
[4 6 8]
The next examples shows the default start
value is the first value in the array.
import numpy as np
a = np.array([2, 4, 6, 8])
print(a)
b = a[:3]
print(b)
[2 4 6 8]
[2 4 6]
The following indexing operations output the same array.
import numpy as np
a = np.array([2, 4, 6, 8])
b = a[0:4]
print(b)
c = a[:4]
print(c)
d = a[0:]
print(d)
e = a[:]
print(e)
[2 4 6 8]
[2 4 6 8]
[2 4 6 8]
[2 4 6 8]
6.7.1. Slicing 2D Arrays¶
2D NumPy arrays can be sliced with the general form:
<slice> = <array>[start_row:end_row, start_col:end_col]
The code section below creates a two row by four column array and indexes out the first two rows and the first three columns.
import numpy as np
a = np.array([[2, 4, 6, 8], [10, 20, 30, 40]])
print(a)
b = a[0:2, 0:3]
print(b)
[[ 2 4 6 8]
[10 20 30 40]]
[[ 2 4 6]
[10 20 30]]
The code section below slices out the first two rows and all columns from array a
.
import numpy as np
a = np.array([[2, 4, 6, 8], [10, 20, 30, 40]])
b = a[:2, :] #[first two rows, all columns]
print(b)
[[ 2 4 6 8]
[10 20 30 40]]
Again, a blank represents defaults the first index or the last index. The colon operator all by itself also represents “all” (default start: default stop).
import numpy as np
a = np.array([[2, 4, 6, 8], [10, 20, 30, 40]])
b = a[:,:] #[all rows, all columns]
print(b)
[[ 2 4 6 8]
[10 20 30 40]]