Массивы NumPy могут быть проиндексированы с помощью массива логических значений для выбора строк, соответствующих True
записям:
>>> X = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> rows = np.array([True,False,True])
>>> X[rows]
array([[1, 2, 3],
[7, 8, 9]])
>>> X[np.logical_not(rows)]
array([[4, 5, 6]])
Но это кажется невозможным с разреженными матрицами SciPy; индексы принимаются как числовые, поэтому False
выбирает строку 0, а True
выбирает строку 1. Как я могу получить поведение, подобное NumPy?