有效地将稀疏矩阵的元素设置为0

洪井井

假设我有一个稀疏矩阵:

library(Matrix)
m <- Matrix(rpois(100, 1), 10, 10, sparse=TRUE)
m
#10 x 10 sparse Matrix of class "dgCMatrix"

# [1,] . . 2 3 1 1 1 . 3 1
# [2,] 1 . 1 . 1 . 2 . . .
# [3,] 1 4 1 . . . . 5 1 1
# [4,] . 1 1 . . . 4 1 1 1
# [5,] 1 . 4 . 1 . . 1 . 2
# [6,] 1 1 2 1 . 1 . 1 2 1
# [7,] 4 2 1 1 . . . 1 1 3
# [8,] 2 2 1 1 1 1 . 1 1 2
# [9,] 2 1 1 . 3 . 2 . . 1
#[10,] . 2 1 1 . . . 1 3 3

我想将所有小于或等于1的元素设置为零。这是一种安全的方法吗?请注意,m2从技术上讲它不再是压缩的稀疏矩阵,因为某些“非零”元素现在实际上为零。

m2@x[m2@x < 2] <- 0
m2
#10 x 10 sparse Matrix of class "dgCMatrix"

# [1,] . . 2 3 0 0 0 . 3 0
# [2,] 0 . 0 . 0 . 2 . . .
# [3,] 0 4 0 . . . . 5 0 0
# [4,] . 0 0 . . . 4 0 0 0
# [5,] 0 . 4 . 0 . . 0 . 2
# [6,] 0 0 2 0 . 0 . 0 2 0
# [7,] 4 2 0 0 . . . 0 0 3
# [8,] 2 2 0 0 0 0 . 0 0 2
# [9,] 2 0 0 . 3 . 2 . . 0
#[10,] . 2 0 0 . . . 0 3 3

具体地讲,我希望创建大规模指示器矩阵,使该元件以改变的位置(如在m[m < 2] <- 0手动通过元素),或循环。

罗兰

我认为您的方法没有任何不安全之处,甚至可能会建议您这样做。如果您想要一个完全稀疏的矩阵,可以执行以下操作:

drop0(m2)
#10 x 10 sparse Matrix of class "dgCMatrix"
#                         
# [1,] 2 . . . . . . . . .
# [2,] . . . 2 . . . . . .
# [3,] . . 2 . . . . . 2 .
# [4,] 2 2 . . 4 . . 2 2 3
# [5,] . 4 . 3 . 3 . . . .
# [6,] 2 . . . . 3 2 . . .
# [7,] . . . . . . 2 . . 2
# [8,] . . . . . . 2 . . 4
# [9,] 2 . . 2 . . . . . 2
#[10,] . . . . . . 2 . . .

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有效地将列表合并到稀疏列表中

有效地将大量SciPy稀疏矩阵条目设置为零

有效地将数组按元素分组

如何有效地组装FEM稀疏矩阵

有效地获得稀疏矩阵的非零元素坐标

如何用矩阵有效地求和向量的每个元素求和

如何有效地将向量的每个元素与矩阵相乘以得到扩大的矩阵

在Python中有效地对稀疏矩阵进行分组

如何有效地更新特征稀疏矩阵项

如何有效地过滤每行矩阵的最大元素

在朱莉娅的稀疏矩阵中有效地插入对角线

numpy:将符合条件的所有像素有效地设置为黑色

如何有效地计算R中稀疏矩阵的每一行的平方和?

在Python中有效地从稀疏矩阵的列中减去均值

如何有效地在(稀疏)矩阵中插入行?

对于稀疏的科学矩阵,将行设置为零的最有效方法是什么?

有效地构造Numpy中的稀疏邻接矩阵

如何有效地将lc-3寄存器设置为“ 1000000000000000”?

有效地填充稀疏矩阵

有效地计算每个非零元素为1的稀疏数组的列式总和

julia-lang有效地将稀疏矩阵保存到文件或从文件中加载

如何最有效地将列设置为data.table中的NA?

有效地将多维数组中元素的引用编码为字符串

有效地将阈值函数应用于 SciPy 稀疏 csr_matrix

犰狳能否有效地将稀疏矩阵和稠密矩阵相乘成稠密结果?

如何有效地计算 scipy.csr 稀疏矩阵中非零索引的成对交集?

有效地变换矩阵

如何有效地将稀疏矩阵列添加到另一个稀疏矩阵中的每一列?

有效地更新特征中大型稀疏矩阵的某些块?