Scala:相当于np.digitize来bucketize数据

问题描述 投票:0回答:1

对于scala,我有一些数据,例如。

val values = Seq(0, 2, 10, 50)

我定义了桶,例如。

val buckets = TreeMap[Int, Double]((0, -0.001),
                                   (1, 1.5),
                                   (2, 5),
                                   (3, 20)

然后我想从我的价值观中获得桶索引,例如。

val result = Seq(0, 1, 2, 3)

在python中这可以用np.digitize来完成,在scala中我找不到与Nd4j或Breeze的等价物。

有优化的解决方案吗?

java python scala numpy bucket
1个回答
1
投票

也许您使用的是较旧的Breeze版本。如果你包括:

libraryDependencies += "org.scalanlp" %% "breeze" % "0.13.2"

在.sbt文件中,您可以使用该功能。例如:

import breeze.stats._

val arr1 = Array(-3, 0.5, 1, 1.5, 4)
val arr2 = Array(0, 1, 2)

digitize(arr1, arr2)

它给

Array(0, 1, 1, 2, 3)
© www.soinside.com 2019 - 2024. All rights reserved.