Numpy – популярная библиотека Python для науки о данных для массива, векторных и матричных вычислений. Эта головоломка вводит Основная индексация элементов в Numpy массивы Отказ
Проблема разработки: Как индексировать элементы в Numpy массивов?
Индексирование 1D массивов с положительными показателями
Наиболее простое использование индексации является с квадратным нотацией кронштейна и положительными целыми числами:
>>> import numpy as np >>> a = np.array([1, 2, 3]) >>> a array([1, 2, 3]) >>> a[0] 1 >>> a[1] 2 >>> a[2] 3
Если вы используете положительный индекс больше или равны, чем количество элементов в массиве, Python бросит IndexError
:
>>> import numpy as np >>> a = np.array([1, 2, 3]) >>> a[3] Traceback (most recent call last): File "", line 1, in a[3] IndexError: index 3 is out of bounds for axis 0 with size 3
Индексирование 1D массивов с отрицательными показателями
Вы также можете использовать негативные индексы для доступа к элементам массива, начиная с последнего элемента и перемещения влево:
>>> import numpy as np >>> a = np.array([8, 7, 5, 4, 9, 1, 9, 5]) >>> a[-1] 5 >>> a[-2] 9 >>> a[-3] 1 >>> a[-4] 9 >>> a[-5] 4 >>> a[-6] 5 >>> a[-7] 7 >>> a[-8] 8
Если вы двигаетесь дальше в отрицательный, Python бросит IndexError
:
>>> a[-9] Traceback (most recent call last): File "", line 1, in a[-9] IndexError: index -9 is out of bounds for axis 0 with size 8
Индексирование 2D массивов Numpy
Если вы используете двумерные массивы, вы можете индексировать отдельные элементы с помощью квадратных нотаций кронштейна и значениями, разделенными запятыми, по одной оси. Первое значение индекса дает индекс строки, а второе значение индекса дает индекс столбца:
>>> import numpy as np >>> a = np.array([[42, 8, 7], [99, 3, 4]]) >>> a[0, 0] 42 >>> a[1, 2] 4 >>> a[1, 1] 3
Вы также можете использовать негативную индексацию на одном или обоих осях.
>>> a[-1, -1] 4
Если вы получаете доступ к элементам вне границы максимально возможного индекса, Python поднимает IndexError
:
>>> a[2, 1] Traceback (most recent call last): File "", line 1, in a[2, 1] IndexError: index 2 is out of bounds for axis 0 with size 2
Numpy Array Индексирование многомерных массивов
Если вы используете многомерные массивы, вы можете индексировать отдельные элементы с помощью квадратных нотаций кронштейна и значениями, разделенными запятыми, по одной оси.
>>> import numpy as np >>> a = [[[1, 1], [2, 3]], [[4, 3], [8, 9]]] >>> a = np.array(a) >>> a[0, 0, 0] 1 >>> a[0, 0, 1] 1 >>> a[0, 1, 0] 2 >>> a[0, 1, 1] 3 >>> a[1, 0, 0] 4 >>> a[1, 0, 1] 3 >>> a[1, 1, 0] 8 >>> a[1, 1, 1] 9
Как правило, Первый элемент в коэффициентом квадратной нотации квадратного кронштейна идентифицирует внешнюю ось, второй элемент второй внешней оси, и так далее.
Numpy Array индексация головоломки
Тренируйте свои навыки, решив следующую мозговую головоломку о индексации и базовой арифметике массива:
import numpy as np # air quality index AQI data hong_kong = np.array([42, 40, 41, 43, 44, 43]) new_york = np.array([30, 31, 29, 29, 29, 30]) montreal = np.array([11, 11, 12, 13, 11, 12]) hk_mean = (hong_kong[0] + hong_kong[-1]) / 2.0 ny_mean = (new_york[1] + new_york[-3]) / 2.0 m_mean = (montreal[1] + montreal[-0]) / 2.0 print(hk_mean) print(ny_mean) print(m_mean)
Что такое выход этой головоломки? * Уровень начинающих * (решение ниже)
Вы можете решить эту головоломку на нашем интерактивном приложении Finxter и отслеживать свой уровень навыков здесь:
Данные анализа головоломки из индекса качества воздуха в реальном времени (AQI) для трех городов Гонконг, Нью-Йорк и Монреаль. Индексные данные агрегаты различными факторами, которые влияют на качество воздуха, такие как дыхательные частицы, озон и диоксид азота. Цель состоит в том, чтобы сравнить данные о качестве воздуха для трех городов. Чтобы показать, как работает индексирование, мы используем различные схемы индексации для доступа к двум значениям данных для каждого города. Затем мы нормализуем данные на 2.0.
Вы можете использовать положительные или отрицательные показатели. Для положительных показателей используйте 0 для доступа к первому элементу и увеличивают индекс на 1, чтобы индексировать каждый последующий элемент. Для негативных показателей используйте -1 для доступа к последнему элементу и уменьшить индекс на 1 для доступа к каждому предыдущему элементу. Это так просто, как это.
Вы мастер-кодер? Проверьте свои навыки сейчас!
Связанное видео.
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.