java - Scala:相当于 np.digitize 对数据进行分桶

标签 java python scala numpy bucket

例如,使用 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 等效的东西。

有没有优化的解决方案?

最佳答案

也许您使用的是较旧的 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)

关于java - Scala:相当于 np.digitize 对数据进行分桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55710132/

相关文章:

java - 如何在java中创建一个具有可以接受不同对象的数组的类

python - Tkinter GUI 将固定宽度文件转换为分隔文件

python - Pandas 从列中获取一个热编码作为 boolean 值

scala - 获取选项的实际类型[Any]

scala - 在 Scala 中,所有抽象类型在删除后都具有相同的类型

scala - Spark 和 ml 中的私有(private)对象和特征

java - Java中构造函数的调用

java - 如何在 session 中存储用户ID并在android中的另一个类中检索它?

javascript - 我如何使用 AJAX 下载 jasper 报告的 PDF 存档?

python 对二维数组求和以获得一维数组