r - 加速 R 中的稀疏矩阵乘法
问题描述
我正在尝试使用 R 中的 %*% 函数将矩阵(由少数 1 和多数 O 组成)与向量相乘,这个过程需要大量时间。有没有办法让我更快?
谢谢
解决方案
您可以使用 Matrix 包创建稀疏矩阵。在这种情况下,矩阵/向量乘法可能会更快。例如:
library(Matrix)
library(tictoc)
set.seed(123)
v <- sample(1e4)
m <- Matrix(sample(c(0, 1), length(v) ^ 2, T, c(.99, .01)),
length(v), length(v), sparse = F)
sm <- Matrix(m, sparse = T)
tic("dense")
x <- m %*% v
toc()
#> dense: 0.094 sec elapsed
tic("sparse")
y <- sm %*% v
toc()
#> sparse: 0.006 sec elapsed
推荐阅读
- dialogflow-es - 我们可以在 Google Dialogflow 中创建对话循环吗
- c# - 我应该使用 .NET Core 还是 .NET 5?
- wpf - 在选择性组合框项目上带有复选框的组合框
- python - 如何打印用双引号而不是单引号括起来的python文本
- mono - 如何在 Centos7 上从 Mono repo 安装旧版本的 Mono 5.20?
- python - 为什么具有零数据集的 XGBoost 返回非零预测?
- reactjs - 如何从容器中分离样式化的组件并使 Jest 工作
- android - 使用 Jacoco 测量多模块和动态功能模块 Android 项目中的测试覆盖率
- reactjs - Reactotron-react-native#react-native-flipper#react-native@^0.62.0" 不满足 "react-native@0.63.2" 的匹配
- git - Rstudio 中的 Git 未跟踪本地更改且不可推送