Массивы 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?