从稀疏矩阵的非零值中减去向量

混合墨西哥胡椒

我想从稀疏矩阵的非零值中减去一个向量,例如

     [,1] [,2] [,3] [,4]
[1,]    0    0    4    0
[2,]    0    5    0    3
[3,]    1    2    0    0

这是我要减去的向量:

[1 2 3]

所以我最后需要的是:

     [,1] [,2] [,3] [,4]
[1,]    0    0    3    0
[2,]    0    3    0    1
[3,]   -2   -1    0    0

我是通过使用来完成此操作的,sparse_matrix.A但是当我使用整个数据集时却消耗了我的内存。

PS矩阵的尺寸太大,我不想使用循环!

亚图

让我们从设置问题开始,并使用csr_matrixfromscipy.sparse来构建稀疏矩阵:

from scipy.sparse import csr_matrix

a = np.array([[0, 0, 4, 0],
              [0, 5, 0, 3],
              [1, 2, 0, 0]])

a_sp = csr_matrix(a, dtype=np.int8)
b = np.array([1,2,3])

我们可以通过找到稀疏矩阵的非零位置csr_matrix.nonzero,并使用row坐标来索引1d密集数组。然后nonzero通过在稀疏矩阵上索引来减去相应的坐标:

nz = a_sp.nonzero()
a_sp[nz] -= b[nz[0]]

print(a_sp.toarray())

array([[ 0,  0,  3,  0],
       [ 0,  3,  0,  1],
       [-2, -1,  0,  0]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从矩阵中减去向量(逐行)

来自分类Dev

从opencv的矩阵的每一行中减去向量?

来自分类Dev

根据data.frame从矩阵中减去向量

来自分类Dev

从矩阵有效地减去向量(Scipy)

来自分类Dev

Numpy-从矩阵的每一列减去向量

来自分类Dev

从向量B的每个元素中减去向量A的每个元素

来自分类Dev

从3d数组中减去向量

来自分类Dev

试图以正确的顺序从时间序列中减去向量

来自分类Dev

从非零索引处的向量中减去行和列

来自分类Dev

在矩阵中减去或相加向量

来自分类Dev

稀疏矩阵中非零值的均值?

来自分类Dev

最初的稀疏矩阵不会将新的零值变成稀疏

来自分类Dev

使用 purrr 逐行减去向量

来自分类Dev

大稀疏矩阵的所有特征向量均为零

来自分类Dev

过滤稀疏矩阵中的值

来自分类Dev

在scipy中删除/设置稀疏矩阵的非零对角元素

来自分类Dev

CUDA:在稀疏矩阵中获取非零元素的任何有效方法

来自分类Dev

对于MATLAB中的大型稀疏矩阵,请计算非零项在各列之间的累积总和?

来自分类Dev

在scipy中删除/设置稀疏矩阵的非零对角元素

来自分类Dev

获取R中的稀疏矩阵的上三角非零元素

来自分类Dev

访问Commons Math库中的稀疏矩阵的非零元素

来自分类Dev

用边缘替换矩阵中的非零值

来自分类Dev

PageRank计算中矩阵向量乘积的稀疏矩阵

来自分类Dev

如何将稀疏矩阵的非零元素转储到非稀疏矩阵

来自分类Dev

替换 scipy 稀疏 csr 矩阵中的值

来自分类Dev

矩阵的部分向量化和去向量化

来自分类Dev

在Matlab中以向量形式创建矩阵的非零元素

来自分类Dev

用先前的非零值替换向量中的所有零

来自分类Dev

零点稀疏矩阵

Related 相关文章

热门标签

归档