0
我想將一列從一個稀疏柱狀矩陣放入另一個(空)稀疏柱狀矩陣。 玩具代碼:將列放入空的稀疏矩陣
import numpy as np
import scipy.sparse
row = np.array([0, 2, 0, 1, 2])
col = np.array([0, 0, 2, 2, 2])
data = np.array([1, 2, 4, 5, 6])
M=scipy.sparse.csc_matrix((data, (row, col)), shape=(3, 3))
E=scipy.sparse.csc_matrix((3, 3)) #empty 3x3 sparse matrix
E[:,1]=M[:,0]
但是我得到警告:
SparseEfficiencyWarning:更改csc_matrix的稀疏結構>昂貴。 lil_matrix更高效。
這個警告讓我害怕在這個過程中矩陣轉換爲另一種格式,然後回到csc,這是不高效的。任何人都可以證實這一點,並有解決方案
感謝您的回答,但通常csc格式應該是最佳的這種列切片操作不是? 我不明白爲什麼它會改變這個特定操作的內部稀疏結構 –
如果它改變了非標準的數量,它會改變稀疏性。這不是'csc' v'csr'問題。在我的計時中,是否複製了一行或一列是沒有關係的。但隨意做你自己的時間。 – hpaulj