2017-08-26 9 views
1

(Python) csr行列Aに他のcsr行列Bの列の値を挿入する最も簡単で最速の方法を提案してくださいサイズ400k * 800kの 私の失敗した試行:空のCSR疎行列に別のcsr行列の列を入れ、それをスライスします

#x is a list of size 500 which contains the column numbers needed from B 
A=sparse.csr_matrix((400000,500)) 

for i in range(400000): 
    for j in range(500): 
     A[i,j]=B[i,x[j]] 

また4の比率で行列Bを分割する簡単な方法があります:1それは密な配列の両方があっABかのような問題を考えるのに役立ちます

答えて

0

最初。

A = B[:, x] 

それはあなたがCSRと同じ操作が同様に行列行うことができますことが判明し、それが合理的に効率的です:私はあなたの質問の権利を理解していれば、あなたのような何かをしたいと思います。キーは、既存のスパース行列に値を割り当てることを避けることです(特にCSRまたはCSC形式の場合)。索引付けを一度に行うことで、scipyはより効率的な方法を使用することができます。

関連する問題