我如何在 Go 中做类似 numpy 的 arange 的事情?

har*_*oba 2 python numpy go

Numpy 的 arange 函数返回给定间隔内具有浮动步长的均匀间隔值的列表。有没有一种简短的方法来创建像 Go 中那样的切片?

sir*_*nga 5

根据val的解决方案,我建议避免使用“x+=step”,因为根据限制和步骤,舍入误差会累积,您可能会保留最后一个值未定义,甚至更糟,尝试定义 N+1值,引起恐慌。

这可以通过以下方法解决:

func arange2(start, stop, step float64) []float64 {
    N := int(math.Ceil((stop - start) / step))
    rnge := make([]float64, N)
    for x := range rnge {
        rnge[x] = start + step*float64(x)
    }
    return rnge
}
Run Code Online (Sandbox Code Playgroud)

http://play.golang.org/p/U67abBaBbv