微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

1不是零的稀疏矩阵

如何解决1不是零的稀疏矩阵

我想将包含很多矩阵的矩阵更改为稀疏矩阵。有程序解决方案吗?

我想避免将1转换为0,反之亦然,因为这会使事情变得比原本要复杂的多(然后我需要进行复杂的转换步骤)。

data <- rnorm(1e6)
zero_index <- sample(1e6)[1:9e5]
data[zero_index] <- 1


Matrix::Matrix(as.matrix(data,sparse = TRUE))
 

解决方法

我认为,如果不自己进行编码,就不可能做到这一点(例如,编写将密集矩阵与常见稀疏矩阵表示形式(例如compressed sparse column)相互转换的函数)。大多数现有的稀疏矩阵表示都经过了优化,以假定“可忽略”元素为零,因为这绝对是科学计算中最常见的用例。

我要说的是您可以改编Matrix包中的代码,但是此转换代码深深地埋在C代码中,并调用CHOLMOD例程...)其他稀疏矩阵包之一,例如spam软件包可能是一个更好的起点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。