Объявление типов в Go для примера приложения gonum

Будучи страстным поклонником 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)

Любой совет будет наиболее ценным.

Спасибо.

1 ответ

Решение

stat.Variance ожидает два параметра типа []float64 одинаковой длины:

func Variance(x, weights []float64) float64

Вы скучаете по weights параметр. Вы можете пройти nil как второй параметр stat.Variance функция, если вы хотите установить все веса случайных величин в 1.

stat Пакет Документация

Другие вопросы по тегам