【问题标题】:Problems with interpolating using impute.interp in Julia在 Julia 中使用 impute.interp 进行插值的问题
【发布时间】:2020-09-05 09:24:14
【问题描述】:

我在插值时遇到问题。在数据中使用此代码一切正常,当从数据点 40903 和 40997 用数据 Lat[40903] = 12.4461 和 Lat[40997] = 12.4460 进行插值时,除了这个间隔。中间的数据点丢失,必须进行插值才能有用。有可能吗?对于大多数需要的值,插值的结果给了我-0.0。

using CSV
using DataFrames
using Impute

data = CSV.read("data.csv", delim=",", header=5, datarow=6, silencewarnings=true)
Lat = Impute.interp(data[:,8]) |> Impute.locf() |> Impute.nocb()

【问题讨论】:

  • 这很难回答,因为它不是一个最小的工作示例 - 您指的是未定义的 data,并且不清楚您使用的是哪个包(可能是 Impute.jl,但是在您的示例中明确说明这一点是一种很好的做法)。

标签: julia linear-interpolation


【解决方案1】:

如果您知道具有缺失值的部分的确切边界,并且可以使用线性插值来填充,您应该能够为每一列生成一个 Range 对象,其中包含该部分值的顶部和底部的缺失值以及该部分的点数。例如,如果列中的底部 X 为 1.5,顶部 X 为 1.3,并且之间的缺失值数为 5,则

LinRange(1.5, 1.3, 5 + 2)[2:6] 

会给出你需要的值。 Impute.jl 也应该这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2022-11-17
    • 2018-06-25
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    相关资源
    最近更新 更多