Предположим, у вас есть матрица
a = numpy.array([[0, 1, 2],
[3, 4, 5],
[0, 1, 2]])
, и вы хотите получить индексы строк, которые не равны
row = numpy.array([0, 1, 2])
Вы можете получить эти индексы с помощью
indices, = (a != row).any(1).nonzero()
a != row
сравнивает каждую строку от a
до row
поэлементно, возвращая логический массив той же формы, что и a
.Затем мы используем any()
вдоль первой оси, чтобы найти строки, в которых любой элемент отличается от соответствующего элемента в row
.Наконец, nonzero()
дает нам индексы этих строк.