繁体   English   中英

零点稀疏矩阵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM