arr = np.array([[1,1,-1],[1,-1,-1]])
arr_idx = (arr==1)[:,:-1] & (arr==-1)[:,1:]
Дает
>>> arr_idx
array([[False, True],
[ True, False]])
Что является индексом для вещей, которые соответствуют вашим критериям.Обратите внимание, что это формируется с одним меньшим количеством столбцов, чем ваша входная матрица (по очевидным причинам).
Вы можете добавить столбец с одной или другой стороны, чтобы изменить индексирование с любой стороны искомой пары.
arr_idx = np.concatenate((np.zeros(shape=(2, 1), dtype=bool), arr_idx), axis=1)
>>> arr_idx
array([[False, False, True],
[False, True, False]])
Вставка нового столбца слева даетиндекс для компонента -1 пары.