Срезы и индексация в NumPy

К содержимому объекта ndarray можно получать доступ и изменять его с помощью индексирования или срезов, точно так же, как при операциях срезов со списками в Python.

Массивы ndarray можно индексировать по нижним индексам от 0 до n. Объекты срезов можно создавать с помощью встроенной функции slice, а задав параметры start, stop и step, можно вырезать новый массив из исходного массива.

Пример

import numpy as np a = np.arange(10) s = срез(2,7,2) # Начиная с индекса 2 до индекса 7 с шагом 2 print (a[s])

Результат вывода:

[2  4  6]

В приведённом выше примере мы сначала создали объект ndarray с помощью функции arange(). Затем мы установили параметры start, stop и step равными 2, 7 и 2 соответственно.

Мы также можем использовать разделённые двоеточием параметры срезаstart:stop:stepдля выполнения операций среза:

Пример

import numpy as np a = np.arange(10) b = a[2:7:2] # Начиная с индекса 2 до индекса 7 с шагом 2 print(b)

Результат вывода:

[2  4  6]

Двоеточие:Объяснение: если указан только один параметр, например[2], будет возвращён единственный элемент, соответствующий этому индексу. Если это[2:], это означает, что все элементы начиная с этого индекса будут извлечены. Если используются два параметра, например[2:7], тогда элементы между двумя индексами (исключая индекс остановки) будут извлечены.

Пример

import numpy as np a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] b = a[5] print(b)

Результат вывода:

5

Пример

import numpy as np a = np.arange(10) print(a[2:])

Результат вывода:

[2  3  4  5  6  7  8  9]

Пример

import numpy as np a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] print(a[2:5])

Результат вывода:

[2  3  4]

Многомерные массивы также используют тот же метод индексации и извлечения, что и выше:

Пример

import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print(a) # Срез, начиная с определённого индекса print('Начать срез с индекса массива a[1:]') print(a[1:])

Результат вывода:

[[1 2 3]
 [3 4 5]
 [4 5 6]]
从数组索引 a[1:] 处开始切割
[[3 4 5]
 [4 5 6]]

Срез также может включать многоточие…, чтобы длина кортежа выбора совпадала с размерностью массива. Если многоточие используется в позиции строки, будет возвращён ndarray, содержащий элементы в этой строке.

Пример

import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print (a[...,1]) # Элемент во 2-м столбце print (a[1,...]) # Элемент во 2-й строке print (a[...,1:]) # 2-й столбец и все оставшиеся элементы

Результат вывода:

[2 4 5]
[3 4 5]
[[2 3]
 [4 5]
 [5 6]]
Другие расширения