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].
startis the index at which to start slicing;endis the index at which slicing ends (the index itself is not included);stepspecifies 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.
123456789import 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 (
stepis positive); - Slicing from the last element (
stepis negative).
- Slicing from the first element (
-
Omitting
end:- Slicing to the last element inclusive (
stepis positive); - Slicing to the first element inclusive (
stepis 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):
1234567891011import 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 start coding
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_salesthat includes the sales data for every second day, starting from the second day (Tuesday). -
Use a positive index for the
startand leave theendunspecified. -
Store the result in
alternate_day_sales.
Solution
Thanks for your feedback!
single
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Awesome!
Completion rate improved to 3.7
Slicing
Swipe to show menu
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].
startis the index at which to start slicing;endis the index at which slicing ends (the index itself is not included);stepspecifies 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.
123456789import 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 (
stepis positive); - Slicing from the last element (
stepis negative).
- Slicing from the first element (
-
Omitting
end:- Slicing to the last element inclusive (
stepis positive); - Slicing to the first element inclusive (
stepis 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):
1234567891011import 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 start coding
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_salesthat includes the sales data for every second day, starting from the second day (Tuesday). -
Use a positive index for the
startand leave theendunspecified. -
Store the result in
alternate_day_sales.
Solution
Thanks for your feedback!
single