Рубрики
Без рубрики

Как индексировать элементы в Numpy массивов?

Numpy – популярная библиотека Python для науки о данных для массива, векторных и матричных вычислений. Эта головоломка вводит основную индексацию элементов в Numpy массивов. Формирование проблем: Как индексировать элементы в Numpy массивов? Индексирование 1D массивов с положительными показателями Наиболее простое использование индексации состоит с квадратным кронштейном и положительным целом: … Как индексировать элементы в NUMPY-массивах? Читать далее “

Автор оригинала: Chris.

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