作为numpy的忠实粉丝,我很高兴地发现golang的图书馆正在进行中。我写了一个很小的测试程序,主要基于文档,如下所示:
package main
import (
"fmt"
"math"
"gonum.org/v1/gonum/stat"
)
func main() {
xs := []float64 {
23.32, 44.32, 100.12, 191.90,
23.22, 90.21, 12.22, 191.21,
1.21, 12.21, 34.23, 91.02,
}
variance := stat.Variance(xs)
fmt.Printf("Data: %v\n", xs)
stddev := math.Sqrt(variance)
fmt.Printf("Standard deviation: %d\n\n", stddev)
}
当我尝试构建程序时,我注意到以下编译器错误:
C:\>go build hello.go
# command-line-arguments
.hello.go:19:30: not enough arguments in call to stat.Variance
have ([]float64)
want ([]float64, []float64)
任何建议都会受到最高的赞赏。
谢谢。
答案 0 :(得分:4)
stat.Variance
期望两个类型为[]float64
的参数长度相同:
func Variance(x, weights []float64) float64
您缺少weights
参数。
如果要将随机变量的所有权重设置为1,可以将nil
作为stat.Variance
函数的第二个参数传递。