2014-01-11 37 views
0

我有一個稀疏矩陣A和列向量,子矩陣SciPy的

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] 

解決問題所需的時間非常長。我很想知道是否可以修改代碼,以使進程更快。

回答

0

csr矩陣有快速行切片; csc矩陣具有快速的列分割。大多數稀疏類型之間的轉換都進行了很好的優化,所以我會建議嘗試使用適當的類型來執行切片類型。

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