1
我是Breeze库的新手,我想将Map[Int, Double]
转换为breeze.linalg.SparseVector
,理想情况下无需指定固定长度的SparseVector
。我成功地实现这种笨拙的代码的目标:将映射[Int,Double]转换为breeze.linalg.SparseVector
import breeze.linalg.{SparseVector => SBV}
val mySparseVector: SBV[Double] = new SBV[Double](Array.empty, Array.empty, 10000)
myMap foreach { e => mySparseVector(e._1) = e._2 }
不仅我有指定的10,000固定长度,但代码运行在O(n),其中n是地图的大小。有没有更好的办法?