python numpy std 与 scala 微风 stddev

我目前正在将一些 python 代码迁移到 Scala。我正在使用微风库作为 numpy 的替代品。


一切看起来都很好,但我在标准偏差实现的输出中遇到了不同的行为:


Python:


series = np.array([1,4,5])

np.mean(series) // 3.3333333333333335

np.std(series) // 1.699673171197595

斯卡拉:


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

但我正在寻找一种方法来轻而易举地获得它。有任何想法吗?


达令说
浏览 209回答 2
2回答

回首忆惘然

这与自由度的数量有关。确实,>>> np.std(series, ddof=1)2.081665999466133这是样本标准。随着微风,你可以做的事情来获得人口标准是var n   = 3val std = breeze.stats.stddev(vector)*Math.pow((n-1)/n, .5)# 1.6996731711975948

交互式爱情

如果 keepAlive 的解决方案不起作用,您应该将“n”更改为 Doublevar n : Double  = 3val std = breeze.stats.stddev(vector)*Math.pow((n-1)/n, .5)# 1.6996731711975948
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python