You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

3x21525数组插值需求:将Raw_y_data从-375.01插值至-400

技术实现方案

核心思路

现有数据中Raw_y_data的最大值为-375.01(最靠近0的取值),当前数据未覆盖到Raw_y_data=-400的范围。我们需要通过插值补充Raw_y_data从当前最小值到-400之间的数据点,同时生成对应的Horizontal_Distance_x和Density插值结果,最终得到包含新增插值点的3维数组。

步骤与代码实现

1. 加载并预处理数据

直接读取已生成的x_y_density2.csv即可,也可以在原数据处理代码的基础上直接用df2继续操作:

import pandas as pd
import numpy as np
from scipy.interpolate import interp1d

# 读取处理后的数据
df2 = pd.read_csv("x_y_density2.csv")
# 按Raw_y_data升序排列(确保插值用的自变量有序)
df_sorted = df2.sort_values(by="Raw_y_data")

2. 定义插值目标与插值函数

生成从-400到当前Raw_y_data最大值(-375.01)的目标y值,再基于现有数据插值得到对应的x和密度值:

# 提取现有数据的核心数组
y_existing = df_sorted["Raw_y_data"].values
x_existing = df_sorted["Horizontal_Distance_x"].values
density_existing = df_sorted["Density"].values

# 生成插值目标y值:从-400到-375.01,步长可按需调整(这里设为0.1)
y_target = np.arange(-400, -375.01, 0.1)
# 手动加入-375.01,避免遗漏原始最大值点
y_target = np.append(y_target, -375.01)

# 创建插值函数:线性插值计算快、结果平稳;需要平滑曲线可替换为'cubic'(三次样条)
interp_x = interp1d(y_existing, x_existing, kind='linear', fill_value="extrapolate")
interp_density = interp1d(y_existing, density_existing, kind='linear', fill_value="extrapolate")

# 计算插值后的x和密度值
x_interpolated = interp_x(y_target)
density_interpolated = interp_density(y_target)

3. 合并数据并生成最终数组

把原始数据和插值数据合并,转换成要求的3xN数组格式:

# 组合插值后的数据集
df_interpolated = pd.DataFrame({
    "Horizontal_Distance_x": x_interpolated,
    "Raw_y_data": y_target,
    "Density": density_interpolated
})

# 合并原始数据与插值数据,去重避免重复点,再重新排序
df_final = pd.concat([df2, df_interpolated]).drop_duplicates(subset=["Raw_y_data"]).sort_values(by="Raw_y_data")

# 转换为3行N列的数组(行对应三个特征,列对应样本)
final_array = df_final[["Horizontal_Distance_x", "Raw_y_data", "Density"]].values.T

4. 验证与输出

# 检查插值结果是否符合要求
print(f"Raw_y_data最小值:{df_final['Raw_y_data'].min()}")
print(f"最终数组形状:{final_array.shape}")

# 保存插值后的完整数据集
df_final.to_csv("x_y_density_interpolated.csv", index=False)

关键说明

  • 插值方法选择:线性插值(kind='linear')适合大多数场景,计算高效且结果稳定;如果需要更平滑的曲线,可替换为三次样条插值(kind='cubic'),但需注意原始数据是否存在噪声,避免过度拟合。
  • 自变量调整:如果你的数据是按Horizontal_Distance_x有序分布的,也可以将x作为自变量,插值得到Raw_y_data=-400对应的x和密度值,具体需结合数据的物理意义调整。
  • 边界处理:fill_value="extrapolate"参数允许在现有数据范围外进行外插,确保能精准延伸到Raw_y_data=-400的位置。

内容的提问来源于stack exchange,提问作者Achelia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:27:52