gpt4 book ai didi

python - 如何将 scipy.interpolate.interp2d 用于数据向量?

转载 作者:太空狗 更新时间:2023-10-30 02:19:15 29 4
gpt4 key购买 nike

我有一个取决于两个参数的量的测量值表。假设我有一个函数 fuelConsumption(speed, temperature),网格上的数据是已知的。

现在我想为来自 pandas.DataFrame 的大量测量数据点(速度、温度)插入预期的 fuelConsumption(并返回一个包含值的向量对于每个数据点)。

我目前正在使用 SciPy 的 interpolate.interp2d 进行插值,但是当将参数作为两个向量 [s1,s2][t1,t2] 传递时(为简单起见,只有两个有序值)它将构造一个网格并返回:

[[f(s1,t1), f(s2,t1)], [f(s1,t2), f(s2,t2)]]

我希望得到的结果是:

[f(s1,t1), f(s2, t2)]

如何插值以获得我想要的输出?

最佳答案

从 scipy v0.14 开始你可以使用 scipy.interpolate.RectBivariateSpline使用 grid=False:

import numpy as np
from scipy.interpolate import RectBivariateSpline
from matplotlib import pyplot as plt


x, y = np.ogrid[-1:1:10j,-1:1:10j]
z = (x + y)*np.exp(-6.0 * (x * x + y * y))

spl = RectBivariateSpline(x, y, z)

xi = np.linspace(-1, 1, 50)
yi = np.linspace(-1, 1, 50)
zi = spl(xi, yi, grid=False)

fig, ax = plt.subplots(1, 1)
ax.hold(True)
ax.imshow(z, cmap=plt.cm.coolwarm, origin='lower', extent=(-1, 1, -1, 1))
ax.scatter(xi, yi, s=60, c=zi, cmap=plt.cm.coolwarm)

enter image description here

关于python - 如何将 scipy.interpolate.interp2d 用于数据向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31381072/

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