我目前正在將一些 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
提交
取消