我从我的朋友那里听说,对data.table的数学运算比对矩阵的数学运算要快得多。我正在尝试计算大小为30kx30k的两个矩阵的dot.product,并寻找花费的时间
matrix1 = matrix(rexp(200, rate=.1), ncol=30000,nrow=30000)
matrix2 = matrix(rexp(200, rate=.1), ncol=30000,nrow=30000)
product = matrix1 %*% matrix2
我想使用data.table做同样的事情
dt1<- as.data.table(matrix1)
dt2<- as.data.table(matrix2)
您能否告诉我是否有更简单的方法在data.table上进行点积运算(无需将其转换为矩阵)?
这个问题的前提是不正确的。data.table
像data.frame
s一样是向量列表。
相反,矩阵是具有维属性的单个向量。
与列表相关的开销是可以避免的,如果您的数据可以适合矩阵。
data.tables
相对于data.frames(并取决于应用程序,列出自身)或使用另一个向量作为迭代参考时,速度更快。
但是,对于直接矩阵乘法,请坚持 matrix
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句