Введение
В этом практическом занятии мы рассмотрим концепции индексирования и срезывания в библиотеке Numpy для Python. Мы научимся получать доступ к элементам массива, изменять их и извлекать диапазон элементов. Также мы объясним и продемонстрируем различные методы индексирования в библиотеке Numpy с использованием примеров.
Советы по работе с ВМ
После запуска виртуальной машины щелкните в верхнем левом углу, чтобы переключиться на вкладку Notebook и приступить к практике в Jupyter Notebook.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений в Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Основы понимания
- В массиве NumPy срезы - это способ извлечения диапазона элементов из массива.
- Элементы в объекте ndarray всегда индексируются с нуля.
- Чтобы получить доступ к содержимому объекта ndarray в библиотеке Numpy и изменить его, можно использовать индексирование или срезы, как это делается для встроенных контейнерных объектов Python.
Срезание массивов NumPy
- Срезы в массиве выполняются так же, как и в списках Python.
- Если массив содержит 100 элементов и вы хотите выбрать только часть значений, вы можете выполнить срез и извлечь нужный набор значений из целого ndarray.
- Изучите срез списков Python, и вы сможете применить то же самое к ndarray NumPy.
Индексирование массивов NumPy
- В библиотеке NumPy есть три типа методов индексирования:
- Доступ к полю - это прямой доступ к полю с использованием индекса значения.
- Базовое срезывание - базовое срезывание - это просто расширение базового понятия срезывания Python до n-мерных массивов.
- Расширенное индексирование (не рассматривается в этом практическом занятии)
Примеры
- Перейдем к некоторым примерам, чтобы лучше понять эти концепции.
Пример 1 - Срезание Ndarray
import numpy as np
a = np.arange(10)
print("The ndarray is :")
print(a)
s = slice(2,7,2)
print("After applying slice() Function:")
print (a[s])
- Код выше создает объект ndarray с использованием функции arange().
- Определяется объект среза с начальным значением 2, конечным значением 7 и шагом 2 соответственно.
- Затем этот объект среза передается в ndarray. Будет отрезан участок, начиная с индекса 2 и заканчивая индексом 7 с шагом 2.
Пример 2 - Срезание одного элемента
import numpy as np
a = np.arange(15)
print("The array is :")
print(a)
## using the index directly
b = a[7]
print("The Eighth item in the array is :")
print (b)
- Код выше извлекает один элемент из объекта ndarray.
- Извлечение одного элемента массива можно легко выполнить с использованием индексирования.
Пример 3
import numpy as np
a = np.arange(20)
print("The array is :")
print(a)
print("Slicing of items starting from the index:")
print(a[2:])
- Код выше выбирает элементы начиная с заданного индекса до последнего индекса или последнего элемента.
Пример 4
import numpy as np
a = np.arange(20)
print("The array is :")
print(a)
print("Slicing of items between two given indexes:")
print(a[2:8])
- Код выше выбирает все элементы между двумя заданными индексами.
- Он исключает значение по конечному индексу.
Использование трех точек
- При срезе трех точки (...) используются для создания кортежа выбора той же длины, что и размерность массива.
- Для многомерного ndarray, если трех точки используются в позиции строк, то возвращается ndarray, состоящий из элементов в строках, и аналогично для столбцов.
import numpy as np
a = np.array([[11,2,23],[33,44,5],[84,25,16]])
print ("The array is :")
print (a )
print ('\n')
#To return array of items in the second column
print ('The items in the second column are:')
print (a[..., 1] )
print ('\n')
## In order to slice all items from the second row
print ('The items in the second row are:')
print (a[1,...])
print ('\n')
## In order to slice all items from column 1 onwards
print ('The items onwards to column 1 are:' )
print (a[..., 1:])
Резюме
В этом практическом занятии мы рассмотрели концепцию индексирования и среза в библиотеке Numpy. Мы изучили различные методы индексирования в библиотеке Numpy и способы среза массивов. Мы также увидели примеры, демонстрирующие практическую реализацию этих концепций.