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

如何从128x128 dataframe矩阵生成等距网格用于插值

均匀网格调整操作方案

对于128x128的非均匀间距DataFrame网格,可通过坐标重采样+插值的方式生成等距规则网格,具体操作如下:

  • 依赖工具安装:提前安装需要的计算库,执行pip install numpy pandas scipy即可。
  • 步骤1:提取原始网格的坐标与对应数值
    根据你的DataFrame存储格式选择对应的提取方式:
    import numpy as np
    import pandas as pd
    from scipy.interpolate import griddata
    
    # 你的原始DataFrame变量,这里用df代指
    # 存储格式1:三列结构,分别存横坐标x、纵坐标y、网格点数值value
    x_original = df["x"].values
    y_original = df["y"].values
    value_original = df["value"].values
    
    # 存储格式2:128行128列结构,行对应y坐标、列对应x坐标,单元格存网格点数值
    # 需提前传入原始非均匀的列坐标列表x_list、行坐标列表y_list
    # x_original = np.tile(x_list, 128)
    # y_original = np.repeat(y_list, 128)
    # value_original = df.values.flatten()
    
  • 步骤2:生成等距新网格坐标
    基于原始坐标的范围生成等间距的新网格,可自定义分辨率,此处保持128x128的尺寸不变:
    grid_size = 128
    # 生成横纵方向的等距坐标
    x_uniform = np.linspace(x_original.min(), x_original.max(), grid_size)
    y_uniform = np.linspace(y_original.min(), y_original.max(), grid_size)
    # 构建网格矩阵
    X_uniform, Y_uniform = np.meshgrid(x_uniform, y_uniform)
    
  • 步骤3:插值得到均匀网格数值
    可根据精度需求选择插值方法:
    # method参数可选:'nearest'(最近邻插值,速度最快)、'linear'(线性插值,精度速度平衡)、'cubic'(三次插值,结果最平滑)
    value_uniform = griddata((x_original, y_original), value_original, (X_uniform, Y_uniform), method="linear")
    # 结果转DataFrame,行索引为y坐标、列索引为x坐标
    df_uniform_grid = pd.DataFrame(value_uniform, index=y_uniform, columns=x_uniform)
    

注意:如果原始数据存在缺失值,插值前需先做缺失值填充,否则结果会出现nan值;如果是带空间参考的地理网格数据,可改用xarray、rasterio的重采样工具,适配坐标系相关的特殊规则。

原始不均匀网格效果参考:
不均匀网格示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:57:04