Слайсинг (нарезка) в Python — это функция, которая позволяет получить доступ к элементам итераторов, таким как строки, кортежи и списки. Вы также можете использовать их для изменения или удаления элементов изменяемых итераторов, таких как списки.
Индексация используется для получения отдельных элементов массива, но также может получать целые строки, столбцы из многомерных массивов.
Слайсинг массивов Numpy
Чтобы нарезать массив numpy в Python, используйте indexing. Нарезка в Python означает перенос элементов из одного заданного индекса в другой заданный индекс. Срез возвращает совершенно новый список.
Мы передаем срез вместо индекса следующим образом: [start: end]. Мы также можем определить шаг, например: [start: end: step].
Если мы не передаем начальный параметр, он считается равным 0. Если мы не передаем конечный параметр, он считается длиной массива в этом измерении. Если мы не передаем параметр шага, он считается равным 1.
Элементы среза массива
Давайте разделим элементы от индекса 0 до индекса 5 из следующего массива.
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(arr[0:5]) |
Вывод:
|
1 |
[1 2 3 4 5] |
Если вы внимательно посмотрите на вывод, то разделенный массив включает начальный индекс, но исключает конечный индекс.
Давайте нарежем массив из 5-го индекса.
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(arr[5:]) |
Вывод:
|
1 |
[ 6 7 8 9 10] |
Отрицательная нарезка
Чтобы использовать отрицательный срез, используйте оператор минус, чтобы обратиться к индексу с конца.
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(arr[-4: -2]) |
Вывод:
|
1 |
[7 8] |
Передача параметра шага
Используйте значение шага, чтобы определить шаг нарезки.
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(arr[2: 9: 2]) |
Вывод:
|
1 |
[3 5 7 9] |
Чтобы вернуть каждый второй элемент из всего массива, используйте следующий код.
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(arr[::2]) |
Вывод:
|
1 |
[1 3 5 7 9] |
Нарезка 2D-массивов в Python
Из второго элемента разделите элементы от индекса 1 до индекса 4(не включены).
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) print(arr[1, 1:3]) |
Вывод:
|
1 |
[6 7] |
Из обоих элементов верните индекс 3.
|
1 2 3 4 5 6 7 |
# app.py import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) print(arr[0: 2, 3]) |
Слайсинг массива 3D Numpy в Python
Чтобы разрезать трехмерный массив в Python, используйте все 3 оси, чтобы получить прямоугольное подмножество исходного массива.
|
1 2 3 4 5 6 7 8 9 |
# app.py import numpy as np arr = np.array([[[21, 56, 12], [13, 46, 15], [16, 18, 18]], [[20, 19, 22], [23, 29, 25], [26, 18, 28]], [[30, 26, 32], [33, 6, 35], [36, 10, 38]]]) print(arr[:2, 1:, :2]) |
Вывод:
|
1 2 3 4 5 |
[[[13 46] [16 18]] [[23 29] [26 18]]] |
Содержатся:
- плоскости: 2 (первые 2 плоскости).
- ряды:2 (последние 2 ряда).
- столбцы: 2 (первые 2 столбца).
Заключение

Разделение массива Numpy расширяет фундаментальную концепцию нарезки Python до N измерений. Существенная нарезка происходит, когда obj является объектом среза (созданный с помощью обозначения start:stop:step внутри скобок), целым числом или кортежем объектов среза и целых чисел.
