Описание проблемы: У вас есть 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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.