【发布时间】:2021-06-19 10:57:55
【问题描述】:
我必须从存储为 Pandas DataFrame 的表格数据中执行 3 或 4 维插值。
我在变量df : DataFrame 中存储了以下数据:
xm xA xl z
2.3 4.6 10.0 1.905
2.3 4.6 11.0 1.907
2.3 4.8 10.0 1.908
2.3 4.8 11.0 1.909
2.4 4.6 10.0 1.811
2.4 4.6 11.0 1.812
2.4 4.8 10.0 1.813
2.4 4.8 11.0 1.814
xm, xa, xl 是绘制网格的轴。 z 列包含要从中执行插值的值。确实,我想出的规则网格是这样计算的:
grid = np.meshgrid(*(df.xm,df.xA,df.xl))
现在我的问题是如何将 Z 系列数据从 DataFrame 转换为 np.array 以传递给 Scipy 函数:
from scipy import interpolate
p0 = (xm0,xA0,xl0)
z0 = interpolate.interpn(grid, myarray, p0)
【问题讨论】:
-
grid = np.meshgrid(*(df.xm,df.xA,df.xl))?不同于grid = np.meshgrid(df.xm,df.xA,df.xl) -
我认为你可以使用
df.z.values.reshape(grid[0].shape)之类的东西。
标签: python pandas scipy interpolation