Course Content
Ultimate NumPy
Ultimate NumPy
Slicing
Slicing in Python refers to retrieving elements from one index to another within a sequence. In this chapter, however, we will focus on slicing in NumPy arrays.
Slicing in 1D Arrays
The general syntax for slicing in 1D arrays is as follows: array[start:end:step]
.
start
is the index at which to start slicing;end
is the index at which slicing ends (the index itself is not included);step
specifies the increments between the indices (default is1
).
Here is an example to clarify everything (purple squares represent the elements retrieved from slicing):
Note
Since we did not explicitly specify
step
, it defaults to a value of1
.
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the element at index 2 to the element at index 4 exclusive print(array[2:4]) # Slicing from the first element to the element at index 5 exclusive print(array[:5]) # Slicing from the element at index 5 to the last element inclusive print(array[5:])
Omitting Start, End, and Step
As you can see, we can often omit the start
, end
, step
, or even all of them at the same time. For example, step
can be omitted when we want it to be equal to 1
. start
and end
can be omitted in the following scenarios:
-
Omitting
start
:- Slicing from the first element (
step
is positive); - Slicing from the last element (
step
is negative).
- Slicing from the first element (
-
Omitting
end
:- Slicing to the last element inclusive (
step
is positive); - Slicing to the first element inclusive (
step
is negative).
- Slicing to the last element inclusive (
Let's take a look at a few more examples (the black arrow indicates that the elements are taken in reverse order):
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the first element to the last element inclusive with step=2 print(array[::2]) # Slicing from the element at index 4 to the element at index 2 exclusive (step=-1) print(array[4:2:-1]) # Slicing from the last element to the first element inclusive (reversed array) print(array[::-1]) # Slicing from the first element to the last inclusive (the same as our array) print(array[:])
The picture below shows the structure of the weekly_sales
array used in the task:
Swipe to show code editor
You are analyzing the daily sales data of a small retail store. The sales for the past week are stored in the weekly_sales
array, with each element representing the sales for a specific day.
-
Create a slice of
weekly_sales
that includes the sales data for every second day, starting from the second day (Tuesday). -
Use a positive index for the
start
and leave theend
unspecified. -
Store the result in
alternate_day_sales
.
Thanks for your feedback!
Slicing
Slicing in Python refers to retrieving elements from one index to another within a sequence. In this chapter, however, we will focus on slicing in NumPy arrays.
Slicing in 1D Arrays
The general syntax for slicing in 1D arrays is as follows: array[start:end:step]
.
start
is the index at which to start slicing;end
is the index at which slicing ends (the index itself is not included);step
specifies the increments between the indices (default is1
).
Here is an example to clarify everything (purple squares represent the elements retrieved from slicing):
Note
Since we did not explicitly specify
step
, it defaults to a value of1
.
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the element at index 2 to the element at index 4 exclusive print(array[2:4]) # Slicing from the first element to the element at index 5 exclusive print(array[:5]) # Slicing from the element at index 5 to the last element inclusive print(array[5:])
Omitting Start, End, and Step
As you can see, we can often omit the start
, end
, step
, or even all of them at the same time. For example, step
can be omitted when we want it to be equal to 1
. start
and end
can be omitted in the following scenarios:
-
Omitting
start
:- Slicing from the first element (
step
is positive); - Slicing from the last element (
step
is negative).
- Slicing from the first element (
-
Omitting
end
:- Slicing to the last element inclusive (
step
is positive); - Slicing to the first element inclusive (
step
is negative).
- Slicing to the last element inclusive (
Let's take a look at a few more examples (the black arrow indicates that the elements are taken in reverse order):
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the first element to the last element inclusive with step=2 print(array[::2]) # Slicing from the element at index 4 to the element at index 2 exclusive (step=-1) print(array[4:2:-1]) # Slicing from the last element to the first element inclusive (reversed array) print(array[::-1]) # Slicing from the first element to the last inclusive (the same as our array) print(array[:])
The picture below shows the structure of the weekly_sales
array used in the task:
Swipe to show code editor
You are analyzing the daily sales data of a small retail store. The sales for the past week are stored in the weekly_sales
array, with each element representing the sales for a specific day.
-
Create a slice of
weekly_sales
that includes the sales data for every second day, starting from the second day (Tuesday). -
Use a positive index for the
start
and leave theend
unspecified. -
Store the result in
alternate_day_sales
.
Thanks for your feedback!