Срез X[1:-1, 1:-1] в NumPy используется для выбора подматрицы из двумерного массива, исключая первую и последнюю строки и столбцы.
Разбор синтаксиса:
X[row_start:row_stop, col_start:col_stop]row_start:row_stop— выбор строкcol_start:col_stop— выбор столбцов- Отрицательные индексы считаются с конца массива (
-1— последний элемент)
Пример:
import numpy as np
X = np.array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
subX = X[1:-1, 1:-1]
print(subX)Результат:
[[ 6 7]
[10 11]]
Объяснение:
X[1:-1, :]→ строки 1 и 2 (второй и третий, исключаем 0 и 3)X[:, 1:-1]→ столбцы 1 и 2 (второй и третий, исключаем 0 и 3)- Совмещение → подматрица 2×2 из «центральной части» исходной матрицы
Особенности:
- Такой срез возвращает view, не копию, изменения
subXизменятX - Можно комбинировать с шагом:
X[1:-1:2, 1:-1:2] - Работает для массивов любой размерности, просто указываются оси
Коротко: X[1:-1, 1:-1] = «взять все строки и столбцы, кроме первой и последней, формируя подматрицу».