Python 向稀疏矩阵中的非零元素添加值

Python 向稀疏矩阵中的非零元素添加值,python,machine-learning,sparse-matrix,Python,Machine Learning,Sparse Matrix,我有一个稀疏矩阵,我想把所有非零元素的值增加一。然而,我无法理解。有没有一种方法可以使用python中的标准包来实现这一点?感谢您的帮助。如果您的矩阵有两个维度,您可以执行以下操作: sparse_matrix = [[element if element==0 else element+1 for element in row ]for row in sparse_matrix] 它将迭代矩阵中的每个元素,如果元素等于零,则返回该元素而不做任何更改,否则它将向元素添加1并返回它 更多关于n.

我有一个稀疏矩阵,我想把所有非零元素的值增加一。然而,我无法理解。有没有一种方法可以使用python中的标准包来实现这一点?感谢您的帮助。

如果您的矩阵有两个维度,您可以执行以下操作:

sparse_matrix = [[element if element==0 else element+1 for element in row ]for row in sparse_matrix]
它将迭代矩阵中的每个元素,如果元素等于零,则返回该元素而不做任何更改,否则它将向元素添加1并返回它


更多关于n.中列表理解中的条件的信息。

如果矩阵有两个维度,则可以执行以下操作:

sparse_matrix = [[element if element==0 else element+1 for element in row ]for row in sparse_matrix]
它将迭代矩阵中的每个元素,如果元素等于零,则返回该元素而不做任何更改,否则它将向元素添加1并返回它


更多关于n.中列表理解中的条件的信息

您可以使用包
numpy
,它具有处理n维数组的有效函数。您需要的是:

数组[array>0]+=1

其中
array
是矩阵的numpy数组。示例如下: `

产出:

Matrix before incrementing values: 
 [[2 0 0 0 7]
 [0 0 0 4 0]]
Matrix after incrementing values: 
 [[3 0 0 0 8]
 [0 0 0 5 0]]

希望这有帮助

您可以使用包
numpy
,它具有处理n维数组的有效功能。您需要的是:

数组[array>0]+=1

其中
array
是矩阵的numpy数组。示例如下: `

产出:

Matrix before incrementing values: 
 [[2 0 0 0 7]
 [0 0 0 4 0]]
Matrix after incrementing values: 
 [[3 0 0 0 8]
 [0 0 0 5 0]]

希望这有帮助

我不能评论它的性能,但你可以评论(Scipy 1.1.0)


我不能评论它的性能,但你可以评论(Scipy 1.1.0)


当您有一个
scipy
稀疏矩阵(
scipy.sparse
)时,它是:

返回:

[[3, 0, 0, 0, 8], [0, 0, 0, 5, 0]]

当您有一个
scipy
稀疏矩阵(
scipy.sparse
)时,它是:

返回:

[[3, 0, 0, 0, 8], [0, 0, 0, 5, 0]]

你们的矩阵有多少维?嗨,我用的是1Mx1.5M维矩阵。我试着使用numpy矩阵,但它适用于更小的维度。这对我的系统来说太大了,我现在正在使用16GB的RAM。所以我只想给稀疏矩阵中的所有非零元素添加值。你试过我在下面的答案中写的解决方案吗?你的矩阵有多少维?嗨,我使用的是1Mx1.5M维矩阵。我试着使用numpy矩阵,但它适用于更小的维度。这对我的系统来说太大了,我现在正在使用16GB的RAM。所以我只想给稀疏矩阵中的所有非零元素添加值。你试过我在下面的答案中写的解决方案吗?嗨,谢谢你的回答!我以前尝试过这种方法&它适用于具有合理维数的矩阵。在我的例子中,我使用的是[1Mx1.5M]维矩阵。M在这里是一百万。所以我不能将这个稀疏矩阵转换成numpy数组,因为它给了我一个内存错误。我有16 GB的RAM,我无法删除这些功能或删除一些行。所以理想的解是稀疏矩阵。作为对我问题的更正,我想特别问一下在稀疏矩阵而不是numpy数组中为非零元素添加值的问题。嗨,谢谢你的回答!我以前尝试过这种方法&它适用于具有合理维数的矩阵。在我的例子中,我使用的是[1Mx1.5M]维矩阵。M在这里是一百万。所以我不能将这个稀疏矩阵转换成numpy数组,因为它给了我一个内存错误。我有16 GB的RAM,我无法删除这些功能或删除一些行。所以理想的解是稀疏矩阵。因此,作为对我问题的更正,我想特别询问有关向稀疏矩阵而非numpy数组中的非零元素添加值的问题。这会产生错误-
NotImplementedError:不支持向稀疏矩阵添加非零标量
@atinjanki Hi,感谢您的反馈。它可能与scipy版本有关,我已更新了我的响应。这会产生错误-
未实现错误:不支持向稀疏矩阵添加非零标量
@atinjanki Hi,感谢您的反馈。它可能与scipy版本有关,我已经更新了我的回复。