我在Python中有一个稀疏矩阵A
,我想在第一列中添加14。
A[:,0] + 14
但是,我收到一条错误消息:
NotImplementedError: adding a nonzero scalar to a sparse matrix is not supported
答案 0 :(得分:1)
您可以添加一个明确的列,如下所示:
A[:, 0] = np.ones((A.shape[0], 1))*14 + A[:, 0]
答案 1 :(得分:0)
我遇到了类似的情况(如您的问题标题中所述),经过一番研究,我发现您可以manually change the shape of your matrix,但是,这看起来并不是最好的解决方案,因此,我开始讨论here,我的最终解决方案是手动创建稀疏矩阵(ìndices
,indptr
和data
列表),以便我可以添加新的列,行并更改矩阵稀疏性。
问题的说明提出了另一个问题,您不想添加新列,而是要更改矩阵中元素的值。如果这改变了矩阵稀疏性,我建议您有自己的ìndices
,indptr
和data
列表。如果要修改非零元素,则可以直接对其进行更改,而不会产生更多问题。
另外,this可能值得一读