[英]Sparse matrix of zeros
我有这个代码:
M=np.zeros((N,N),dtype=complex)
M=sparse.bsr_matrix(M)
M[0][0]=complex(1,1)
print(M)
我正在尝试创建一个 NxN 稀疏零矩阵,然后我可以将数字添加到其中。 有人可以告诉我为什么它给我一个错误吗? 谢谢!
由于bsr_matrix
表示块稀疏矩阵,因此您无法通过索引更改其元素。 也许您正在寻找类似csr_matrix
东西? 有了这个,注意它产生的警告,你可以做你想做的事情:
In [192]: M = sparse.csr_matrix((N, N), dtype=np.complex)
In [193]: M[0, 0] = np.complex(1, 1)
C:\Users\<user>\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\sparse\compressed.py:742: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.
SparseEfficiencyWarning)
In [194]: print(M)
(0, 0) (1+1j)
尝试这个:
M = np.zeros((N,N),dtype=complex)
M[0][0] = complex(1,1)
M = sparse.bsr_matrix(M)
print(M)
# (0, 0) (1+1j)
您不能直接设置稀疏矩阵的值,但可以设置 numpy 数组的值,然后将其转换为稀疏矩阵。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.