Gonum has many of these capabilities, but with a slightly different mentality (gonum has weights and sticks to pure []float64 while this defines types and methods, i.e. Coordinate, Float64Data)
gonum/floats for max, min, round, sum, etc.
gonum/stat for mean, std, variance, etc.
gonum/stat/sample for sampling without replacement
Stats also works fine with pure []float64 data. The types allow for a very clean API for working with data and statistics. You can compare using functions[1] or methods[2] in /examples.
I started with only []float64 but wanted to allow stuff like this:
func getData() []float64 {
// Do stuff to get the data and
// store it in var data []float64
return data
}
var d Float64Data = getData()
fmt.Println(d.Max())
If you're interested in developing more stats stuff, we'd love to have you as part of the effort. gonum/stat/dist in particular needs a lot more functionality.
They are separate repos because they have different mentalities. Stat is basic statistics for a (weighted) set of values. Floats is closer to dealing with properties of a vector (norm, distance, etc.). Sample has sophisticated sampling from distributions (metropolis hastings, etc.). gonum/stat/dist has sampling distributions themselves.
Documentation can be found in godoc, i.e. godoc.org/github.com/gonum/stat, godoc.org/github.com/gonum/matrix/mat64, etc.
gonum/floats for max, min, round, sum, etc.
gonum/stat for mean, std, variance, etc.
gonum/stat/sample for sampling without replacement