你有一个原始的稀疏矩阵 X:
>>print type(X)
>>print X.todense()
<class 'scipy.sparse.csr.csr_matrix'>
[[1,4,3]
[3,4,1]
[2,1,1]
[3,6,3]]
你有第二个稀疏矩阵 Z,它是从 X 的某些行派生的(比如说值加倍,所以我们可以看到两个矩阵之间的差异)。在pseudo-code
:
>>Z = X[[0,2,3]]
>>print Z.todense()
[[1,4,3]
[2,1,1]
[3,6,3]]
>>Z = Z*2
>>print Z.todense()
[[2, 8, 6]
[4, 2, 2]
[6, 12,6]]
使用 X 中的 ORIGINAL 索引检索 Z 中的行的最佳方法是什么。例如,在伪代码中:
>>print Z[[0,3]]
[[2,8,6] #0 from Z, and what would be row **0** from X)
[6,12,6]] #2 from Z, but what would be row **3** from X)
也就是说,如何使用引用原始矩阵 X 中原始行位置的索引从 Z 中检索行?为此,无论如何都不能修改 X(不能向矩阵 X 添加索引列),但没有其他限制。