Срез a[1:-1] в NumPy (и Python) выбирает элементы массива от индекса 1 до предпоследнего, не включая последний элемент.

Разберём синтаксис:

a[start:stop:step]
  • start = 1 — начинаем с элемента с индексом 1 (второй элемент)
  • stop = -1 — заканчиваем перед элементом с индексом -1 (последний элемент)
  • step по умолчанию 1

Пример:

import numpy as np
 
a = np.array([10, 20, 30, 40, 50])
b = a[1:-1]
print(b)  # [20 30 40]

Объяснение:

  • a[1] → 20
  • a[2] → 30
  • a[3] → 40
  • a[-1] → 50, но не включается

Особенности:

  • Поддерживается для многомерных массивов, по каждой оси можно использовать срезы
  • Срезы обычно возвращают view, а не копию, т.е. изменение b может изменить a

Коротко: a[1:-1] = «взять все элементы массива, кроме первого и последнего».