我有一个scipy稀疏矩阵 - /collection/Vermeer
- 和一个python列表title
。该列表包含与index
矩阵中的行对应的整数。由此我想创建2个新的scipy稀疏矩阵:
一个应包含title
中的所有行,除非索引号位于title
其他矩阵应包含index
中的所有行,其中索引号位于title
例如
index
import numpy as np
from scipy import sparse
titles = sparse.csr_matrix(np.ones((5,5)))
index = [3,2]
的所需输出为:
print(matrix1.todense())
,[[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]]
的所需输出为:
print(matrix2.todense())
答案 0 :(得分:1)
您可以使用np.setdiff1d
来查找排他性索引,并恰当地索引titles
。
idx1 = [3, 2]
idx2 = np.setdiff1d(np.arange(titles.shape[0]), idx1)
matrix1 = titles[idx2].todense()
matrix2 = titles[idx1].todense()
print(matrix1)
[[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]]
print(matrix2)
[[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]]