Seq-6ren">
gpt4 book ai didi

f# - Deedle 标准化帧

转载 作者:行者123 更新时间:2023-12-01 05:24:16 24 4
gpt4 key购买 nike

如何规范化框架中的数据?

我试过这种方法,但没有用

 let iris = Frame.ReadCsv("./iris.csv")
let keys = iris.ColumnKeys |> Seq.toArray
let x = iris.Columns.[keys.[0..4]]
let mu = x |> Stats.mean
let std = x |> Stats.stdDev
//Not working becasue couldnt substract series from frame
let norm = (x - mu) / std

最佳答案

frame - series过载期望您减去 series来自 frame 的所有栏目,即帧的行键和系列的行键对齐。

对于您的用例,您需要对齐列键 - 没有单独的运算符用于此操作,但您可以使用 mapRows 来完成。功能:

let x = iris.Columns.[keys.[0..3]]
let mu = x |> Stats.mean
let std = x |> Stats.stdDev

let norm =
x
|> Frame.mapRowValues (fun r -> (r.As<float>() - mu) / std)
|> Frame.ofRows

我也换了你的 x来自 keys.[0..3]因为否则你会试图规范化 string 类型的列,失败了。

关于f# - Deedle 标准化帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39174844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com