Индексация массива NumPy в Python

Как и в случае со списком, вы можете использовать квадратные скобки([]) для доступа к элементам массива numpy в Python.

Содержание

Индексация массива NumPy в одномерных массивах

Вдоль одной оси можно выбирать элементы с помощью индексов. Первый элемент начинается с индекса 0, второй элемент начинается с индекса 1 и так далее.

Помимо неотрицательных индексов, для поиска элементов можно использовать отрицательные индексы. Например, последний элемент имеет индекс -1, предпоследний элемент имеет индекс -2 и так далее.

В следующем примере показано, как получить доступ к элементам одномерного массива:

Индексация массива numpy — 1-мерный массив

import numpy as np

a = np.arange(0, 5)
print(a)

print(a[0])
print(a[1])
print(a[-1])

Выход:

[0 1 2 3 4]
0
1
4
3

В этом примере:

  • a[0] возвращает первый элемент(0)
  • a[1] возвращает второй элемент(1)
  • a[-1] — последний элемент(4)
  • a[-2] — предпоследний элемент(3)

Индексация массива NumPy в двумерных массивах

В двумерных и многомерных массивах вы можете выбирать элементы так же, как и в одномерных массивах, но для каждого измерения(или оси). Например:

Индексирование массива NumPy — 2D-массив

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6]
])

print(a.shape)

print(a[0])  # [1 2 3]
print(a[1])  # [4 5 6]

print(a[0, 0])  # 1
print(a[1, 0])  # 4
print(a[0, 2])  # 3
print(a[1, 2])  # 6
print(a[0, -1])  # 3
print(a[1, -1])  # 6

Выход:

(2, 3)
[1 2 3]
[4 5 6]
1
4
3
6
3
6

В этом примере массив numpy a имеет форму(2,3), поэтому у него две оси:

  • Первая ось имеет 2 элемента(2 списка).
  • Вторая ось имеет три элемента(3 числа).

Ниже объясняется, как работает индексация массива:

  • a[0] возвращает первый элемент первой оси, то есть [1 2 3].
  • a[1] возвращает второй элемент первой оси, то есть [4 5 6]
  • a[0, 0] = 1: 0 выбирает первый элемент первой оси([1 2 3]) и первый элемент второй оси.
  • a[1, 0] = 4: 1 выбирает второй элемент первой оси([4 5 6]), а 0 выбирает первый элемент второй оси.
  • a[0, 2]) = 3: 0 выбирает первый элемент первой оси([1 2 3]), а 2 выбирает третий элемент второй оси.
  • a[1, 2] = 6: 1 выбирает второй элемент первой оси([4 5 6]), а 2 выбирает третий элемент второй оси.
  • a[0, -1] = 3: 0 выбирает первый элемент первой оси([1 2 3]), а -1 выбирает последний элемент второй оси.
  • a[1, -1] = 6: 1 выбирает второй элемент первой оси([1 2 3]), а -1 выбирает последний элемент второй оси.

Индексация массива NumPy в трехмерных массивах

В следующем примере создается трехмерный массив numpy:

Индексирование массива NumPy — 3D-массив

import numpy as np

a = np.array([
    [[1, 2], [3, 4], [5, 6]],
    [[5, 6], [7, 8], [9, 10]],
])

print(a.shape)

Выход:

(2, 3, 2)

Массив имеет три оси.

  • Первая ось имеет 2 элемента(2 списка списков чисел)
  • Вторая ось имеет 3 элемента(3 списка чисел)
  • Третья ось имеет 2 элемента(2 числа)

Например:

import numpy as np

a = np.array([
    [[1, 2], [3, 4], [5, 6]],
    [[5, 6], [7, 8], [9, 10]],
])

print(a[0, 0, 1])  # 2

Следующее выражение возвращает 2:

a[0,0,1]

Первое число 0 выбирает первый элемент первой оси и возвращает:

[[1, 2], [3, 4], [5, 6]]

Второе число 0 выбирает первый элемент второй оси и возвращает:

[1, 2]

Третье число(1) выбирает второй элемент третьей оси, который возвращает 2.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *