稀疏零矩阵

2024-05-14 22:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个密码:

M=np.zeros((N,N),dtype=complex)
M=sparse.bsr_matrix(M)
M[0][0]=complex(1,1)
print(M)

我试图创建一个NxN稀疏的零矩阵,然后我可以把数字加到其中。有人能告诉我为什么它给我一个错误吗?谢谢!你知道吗


Tags: 密码错误npzeros矩阵数字matrixsparse
2条回答

试试这个:

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数组的值,然后将其转换为稀疏矩阵。你知道吗

因为^{}表示块稀疏矩阵,所以不能按索引更改其元素。也许你在找^{}之类的东西?有了它,注意它产生的警告,你就可以做你想做的事情:

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)

相关问题 更多 >

    热门问题