Описание проблемы: У вас есть Numpy Array Отказ Вы хотите выбрать определенные элементы из массива. Но ни нарезки, ни индексации, кажется, не решают
В этом коротком руководстве я покажу вам, как выбрать определенные элементы Numpy Array через логические матрицы. Функция называется Условная индексация или Выборочная индексация Отказ
❗ Выборочная индексация: Numpy массивы могут быть нарезанный Чтобы извлечь подстанчику глобального массива. Нормальное нарезка, такое как [I: J] будет вырезать последовательность между Я и J Отказ Но Выборочная индексация (Также: Условная индексация ) позволяет вырезать произвольную комбинацию элементов из множества, определяя логическое массив с той же формой. Если логическое значение по индексу (Я, j) это Правда Элемент будет выбран, в противном случае нет.
Например, именно поэтому вы можете использовать функцию вещания Numpy для условно выбора элементов, которые падают в определенном диапазоне:
import numpy as np
A = np.array([[1,2,3],
[4,5,6],
[1,2,3]])
print(A[A > 3])
# [4 5 6]Вот еще один пример селективной индексации:
import numpy as np
a = np.arange(9)
a = a.reshape((3,3))
print(a)
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
b = np.array(
[[ True, False, False],
[ False, True, False],
[ False, False, True]])
print(a[b])
# Flattened array with selected values from a
# [0 4 8]В приведенном выше коде матрица B С формой (3,3) это параметр А Схема индексации.
Красивая, не так ли?
Позвольте мне выделить важную деталь. В примере вы выбираете произвольное количество элементов из разных осей. Как должен решить переводчик Python, чтобы решить об окончательной форме? Например, вы можете выбрать четыре ряда для столбца 0, но только 2 строки для столбца 1 – какая здесь форма? Существует только одно решение: результат этой операции должен быть одномерным множеством.
Задний план
Давайте начнем с двух частей фоновой информации, чтобы помочь вам обработать код более эффективно:
💡 Функция NP.Arge ([начало,] Стоп [, шаг]) Создает новый массив с равномерно разнесенным номером между запуском (включительно) и останавливаться (эксклюзивным) с данным размером шага. Например, НП. (1, 6, 2) Создает Numpy Array [1, 3, 5] Отказ Вы также можете пропустить начальные и шагные аргументы (значения по умолчанию являются Start = 0 и Step = 1 ).
Перед тем, как мы погрузимся в условную индексацию, давайте сначала введем концепцию перезарядки azypy Array:
💡 Функция Array.Reshape (форма) берет Форма кортеж в качестве аргумента, тогда как каждое значение кортежа определяет количество значений данных одного измерения. Он приносит Numpy Array в новую форму, как указано в аргументе формы.
Numpy Cheat лист (PDF)
Вот быстрое скачивание для вас: я создал этот мошеннический лист, чтобы объяснить некоторые важные Numpy Concepts для моих студентов кодирования.
Вы также можете скачать больше читов для читов Python:
Вы хотите стать Numpy Master? Проверьте нашу интерактивную книгу головоломки Coffe Break Numpy И повысить свои навыки науки о данных! (Ссылка Amazon открывается на новой вкладке.)
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.