python numpy std vs scala breeze stddev

В настоящее время я работаю над переносом кода python на scala. Я использую breeze lib в качестве замены numpy.

Все выглядит отлично, но я столкнулся с различным поведением в выпуске стандартных отклонений:

Python:

series = np.array([1,4,5])
np.mean(series) // 3.3333333333333335
np.std(series) // 1.699673171197595

Scala:

val vector = breeze.linalg.Vector[Double](Array(1.0, 4.0, 5.0))
val mean = breeze.stats.mean(vector) // 3.3333333333333335
val std = breeze.stats.stddev(vector) // 2.081665999466133

Я знаю, как воспроизводить поведение python в простой scala. Пример кода представлен здесь: Scala: каков общий способ вычисления стандартного отклонения

Но я ищу способ получить это с бризом. Есть идеи?

Всего 1 ответ


Это связано с числом степеней свободы . В самом деле,

>>> np.std(series, ddof=1)
2.081665999466133

Каков образец std. С ветерком, что-то, что вы можете сделать, чтобы получить население std

var n   = 3
val std = breeze.stats.stddev(vector)*Math.pow((n-1)/n, .5)
# 1.6996731711975948

Есть идеи?

10000