我目前正在将一些 python 代码迁移到 Scala。我正在使用微风库作为 numpy 的替代品。一切看起来都很好,但我在标准偏差实现的输出中遇到了不同的行为:Python:series = np.array([1,4,5])np.mean(series) // 3.3333333333333335np.std(series) // 1.699673171197595斯卡拉:val vector = breeze.linalg.Vector[Double](Array(1.0, 4.0, 5.0))val mean = breeze.stats.mean(vector) // 3.3333333333333335val std = breeze.stats.stddev(vector) // 2.081665999466133但我正在寻找一种方法来轻而易举地获得它。有任何想法吗?
2 回答

回首忆惘然
TA贡献1847条经验 获得超11个赞
这与自由度的数量有关。确实,
>>> np.std(series, ddof=1)
2.081665999466133
这是样本标准。随着微风,你可以做的事情来获得人口标准是
var n = 3
val std = breeze.stats.stddev(vector)*Math.pow((n-1)/n, .5)
# 1.6996731711975948

交互式爱情
TA贡献1712条经验 获得超3个赞
如果 keepAlive 的解决方案不起作用,您应该将“n”更改为 Double
var n : Double = 3
val std = breeze.stats.stddev(vector)*Math.pow((n-1)/n, .5)
# 1.6996731711975948
添加回答
举报
0/150
提交
取消