【发布时间】:2019-03-09 08:35:53
【问题描述】:
给定一个微风SparseVector 对象:
scala> val sv = new SparseVector[Double](Array(0, 4, 5), Array(1.5, 3.6, 0.4), 8)
sv: breeze.linalg.SparseVector[Double] = SparseVector(8)((0,1.5), (4,3.6), (5,0.4))
记录值 + 1 的最佳方法是什么?
这是一种可行的方法:
scala> new SparseVector(sv.index, log(sv.data.map(_ + 1)), sv.length)
res11: breeze.linalg.SparseVector[Double] = SparseVector(8)((0,0.9162907318741551), (4,1.5260563034950492), (5,0.3364722366212129))
我不喜欢这个,因为它并没有真正利用微风来做加法。我们正在使用微风 UFunc 来获取 Array[Double] 的日志,但这并不多。我担心在具有大型 SparseVectors 的分布式应用程序中,这会很慢。
【问题讨论】:
标签: scala scala-breeze