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