Ускорение умножения разреженных матриц в R - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь умножить матрицу (состоящую из нескольких единиц и большинства О) на вектор с использованием функции% *% в R, этот процесс занимает огромное количество времени. Есть ли способ сделать это быстрее ??

Спасибо

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете создать разреженную матрицу, используя пакет 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...