a[1:-1, 1:-1]
numpy имеет несколько действительно хороших способов обработки индексации и нарезки. Когда я использую Matlab, мне не хватает более продвинутых функций нарезки (особенно функций вещания).
Более общий ответ:
a[[slice(1, -1) for _ in a.shape]]
следует использовать tuple
для хранения slice
для современного Numpy (см. Документы NumPy)
Это фантастически компактно! Я только раньше видел, как это делается с использованием кортежа объектов slice (1, -1).