Введение
NumPy - это популярная библиотека Python, используемая для научных вычислений. Она предоставляет высокопроизводительные операции с массивами и математические функции, которые полезны для анализа числовых данных. В этом практическом занятии вы изучите функции среза и индексации NumPy.
Срезание массивов
Выделение среза - это процесс извлечения подмножества массива путем указания диапазона индексов. Срезы из массивов NumPy можно выделить с помощью оператора двоеточия :.
Откройте Python-интерпретатор
Откройте Python-интерпретатор, введя следующую команду в терминале.
python3
Импортируйте NumPy
NumPy уже установлен, вы можете импортировать его в свой код Python:
import numpy as np
Выделение срезов из одномерных массивов
## создайте одномерный массив
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## извлеките срез массива от индекса 2 до индекса 5
print(a[2:5])
Результат:
[2 3 4]
Выделение срезов из многомерных массивов
Вы также можете выделить срезы из многомерных массивов.
## создайте двумерный массив
b = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
## извлеките первые две строки и первые два столбца
print(b[:2, :2])
Результат:
[[0 1]
[3 4]]
Индексация с помощью булевых массивов
Булевая индексация - это мощный инструмент, который позволяет фильтровать массив на основе условия. Вы можете создать булевый массив, применяя логический оператор к существующему массиву.
Создайте одномерный массив
c = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Создайте булевый массив на основе условия (c > 5)
mask = c > 5
print(mask)
Результат:
[False False False False False False True True True True]
Отфильтруйте исходный массив с использованием булевого массива
print(c[mask])
Результат:
[6 7 8 9]
Фэнси-индексация
Фэнси-индексация - это способ индексирования массива с использованием массива индексов. Вы можете использовать эту технику для извлечения конкретных элементов или подмножеств массива.
## создайте одномерный массив
d = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## создайте массив индексов
indices = np.array([1, 3, 5])
## используйте фэнси-индексацию для извлечения элементов по указанным индексам
print(d[indices])
Результат:
[1 3 5]
- Вы также можете использовать фэнси-индексацию для присвоения значений конкретным элементам в массиве.
## создайте одномерный массив
e = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
## создайте массив индексов
indices = np.array([1, 3, 5])
## присвойте значение 10 элементам по указанным индексам
e[indices] = 10
print(e)
Результат:
[ 0 10 2 10 4 10 6 7 8 9]
Резюме
Поздравляем! Вы завершили практическое занятие по срезу и индексации в NumPy.
В этом практическом занятии вы ознакомились с основами среза и индексации массивов NumPy:
- Срез позволяет извлекать подмножество массива, указав диапазон индексов.
- Булевая индексация позволяет фильтровать массив на основе условия.
- Фэнси-индексация позволяет извлекать конкретные элементы или подмножества массива, используя массив индексов.



