0

疎行列 A と列ベクトル a があります。

In[1]: A
Out[1]: <256x256 sparse matrix of type '<type 'numpy.float64'>'
with 512 stored elements (blocksize = 2x2) in Block Sparse Row format>

In[2]: len(a)
Out[2]: 70

サブマトリックスを書きたいと思います。このために私が書いたコードは次のとおりです。

Sub = A.tolil()[a,:][:,a]

問題を解決するのに必要な時間はかなり長いです。プロセスを高速化するためにコードを変更できるかどうかを知りたいです。

4

1 に答える 1

0

csr マトリックスには高速な行スライスがあります。csc 行列の列スライスは高速です。ほとんどのスパース型間の変換は十分に最適化されているため、実行するスライスの種類に適した型を使用することをお勧めします。

Sub = A.tocsr()[a,:].tocsc()[:,a]

于 2014-01-11T10:30:48.903 に答える