Продвинутый индексирование в NumPy

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы познакомитесь с продвинутым индексированием в NumPy - это техника, которая используется для выбора случайных элементов из различных строк и столбцов ndarray, когда элементы, которые вы хотите выбрать, не имеют особой последовательности.

Советы по работе с ВМ

После запуска виртуальной машины кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится полностью. Валидация операций не может быть автоматизирована из - за ограничений в Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт необходимых библиотек и создание NumPy массива

Сначала нам нужно импортировать библиотеку numpy и создать NumPy массив, на котором мы будем выполнять продвинутый индексирование.

import numpy as np

x = np.array([[11, 28], [23, 84], [95, 56]])
print("The original array")
print(x)

В приведенном выше коде мы импортировали библиотеку numpy и создали NumPy массив, который мы будем использовать для продвинутого индексирования.

Целочисленное индексирование

С использованием целогочисленного индексирования мы можем выбирать произвольные элементы на основе N-мерного индекса. Каждый целочисленный массив используется для представления количества индексов в соответствующую размерность.

y = x[[0, 1, 2], [0, 0, 1]]
print("The output after integer indexing")
print(y)

В приведенном выше коде мы выполняем целоечисленное индексирование над NumPy массивом x и создаем новый массив y, который будет содержать выбранные элементы. Мы выбираем один элемент из указанного столбца из каждой строки NumPy массива x. Индекс строк содержит все номера строк, а индекс столбца задает элемент, который нужно выбрать.

Булево индексирование

Булево индексирование используется, когда мы хотим выбрать элементы из ndarray на основе некоторого условия с использованием операторов сравнения или других операторов.

print("The items greater than 11 are:")
print(x[x > 11])

В приведенном выше коде мы выполняем булево индексирование над NumPy массивом x. Мы возвращаем элементы, которые больше 11 из NumPy массива x.

Объединение продвинутого и базового индексирования

Мы можем объединить продвинутое и базовое индексирование, используя один срез (:) или многоточие (...) вместе с массивом индексов.

z = x[1:4, 1:3]
print("After using basic slicing")
print(z)

y = x[1:4, [1, 2]]
print("After slicing using advance index for column")
print(y)

В приведенном выше коде мы выполняем срез NumPy массива x. Мы используем базовый срез и продвинутое индексирование для столбца.

Удаление значений "не число"

Мы можем удалить значения "не число" (NaN) с использованием оператора дополнения (~).

a = np.array([np.nan, 1, 12, np.nan, 3, 41, 54])
print("После удаления NaN выходной массив выглядит так:")
print (a[~np.isnan(a)])

В приведенном выше коде мы удаляем значения "не число" (NaN) из NumPy массива a с использованием оператора дополнения (~).

Удаление некомплексных чисел

Мы можем отфильтровать некомплексные числа из массива с использованием функции iscomplex.

a = np.array([1, 2+6j, 5, 3.5+5j])
print("После фильтрации некомплексных чисел:")
print (a[np.iscomplex(a)])

В приведенном выше коде мы отфильтровываем некомплексные числа из NumPy массива a с использованием функции iscomplex.

Резюме

В этом практическом занятии вы узнали о различных видах продвинутого индексирования элементов ndarray в библиотеке NumPy. Вы рассмотрели несколько примеров для различных типов применений продвинутого индексирования в NumPy. С использованием этой техники вы можете выбирать случайные элементы из различных строк и столбцов NumPy массива.