元の疎行列 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]]
X のいくつかの行から派生した 2 番目のスパース行列 Z があります (2 つの行列の違いを確認できるように、値が 2 倍になっているとします)。で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 にインデックス列を追加することはできません) が、他に制限はありません。