以下简单的for块大约需要 ~3 秒才能完成R:
library(MASS)
nruns <- 2000
nelems <- 50
maxX <- 1
maxY <- 1
for(i in 1:nruns) {
dataX <- runif(nelems, 0, maxX)
dataY <- runif(nelems, 0, maxY)
kde2d(dataX, dataY, n=50, lims=c(0, maxX, 0, maxY) )
}
rpy2
通过库在 Python 中运行相同的代码需要 4-5 倍的时间:
from rpy2.robjects import r
from rpy2.robjects.packages import importr
importr('MASS')
nruns = 2000
r.assign('nelems', 50)
r.assign('maxX', 1)
r.assign('maxY', 1)
for _ in range(nruns):
r('dataX <- runif(nelems, 0, maxX)')
r('dataY <- runif(nelems, 0, maxY)')
r('kde2dmap <- kde2d(dataX, dataY, n=50, lims=c(0, maxX, 0, maxY))')
这仅仅是因为我正在使用rpy2图书馆进行交流R还是有其他原因在起作用?这可以以任何方式改进吗(同时仍然在 Python 中运行代码)?
慕娘9325324
紫衣仙女
相关分类