feat: 15 funciones datascience — estadística, DSP e IO de datos
12 funciones puras con implementación real: Standardize, MinMaxScale, Clip, RollingWindow, ZipSlices, GroupBy, Histogram, Pearson, Autocorrelation, FFT (Cooley-Tukey), DetectOutliers, Impute 3 funciones impuras (stubs): LoadCSV, LoadParquet, FetchDataFrame Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package datascience
|
||||
|
||||
import "math"
|
||||
|
||||
// Standardize aplica Z-score normalización a un slice de float64.
|
||||
// Cada valor se transforma a (x - mean) / stddev.
|
||||
// Si stddev es 0, retorna un slice de ceros.
|
||||
func Standardize(data []float64) []float64 {
|
||||
n := len(data)
|
||||
if n == 0 {
|
||||
return []float64{}
|
||||
}
|
||||
|
||||
var sum float64
|
||||
for _, v := range data {
|
||||
sum += v
|
||||
}
|
||||
mean := sum / float64(n)
|
||||
|
||||
var sqSum float64
|
||||
for _, v := range data {
|
||||
d := v - mean
|
||||
sqSum += d * d
|
||||
}
|
||||
stddev := math.Sqrt(sqSum / float64(n))
|
||||
|
||||
result := make([]float64, n)
|
||||
if stddev == 0 {
|
||||
return result
|
||||
}
|
||||
for i, v := range data {
|
||||
result[i] = (v - mean) / stddev
|
||||
}
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user