Scala: эквивалент np.digitize для объединения данных - PullRequest
0 голосов
/ 16 апреля 2019

С помощью 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.

Существует ли оптимизированное решение дляэто?

1 Ответ

1 голос
/ 16 апреля 2019

Возможно, вы используете более старую версию 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)
...