python - 使用 scipy.interpolate.RegularGridInterpolator 出现错误 "There are 100 point arrays, but values has 2 dimensions"

标签 python numpy scipy interpolation

我知道有一个post解释了如何做到这一点,但我认为我按照帖子中概述的步骤进行操作,但仍然出现尺寸错误。

这是我尝试过的:

import numpy as np
from scipy.interpolate import RegularGridInterpolator
x = np.linspace(0,1,100)
y = x ** 2
f = RegularGridInterpolator(x,y)

我所做的与链接帖子的操作完全相同。但是,我仍然遇到同样的错误:

There are 100 point arrays, but values has 2 dimensions

这是因为我正在处理一维数据吗?如果我能得到这方面的指导,我将不胜感激。

最佳答案

正确的语法是

RegularGridInterpolator((x,), y)

网格由数组元组确定:一个用于第一个坐标,一个用于第二个坐标,等等。这里您需要一个 1 列表的元组。

如果这看起来不必要地复杂,那是因为事实确实如此。此方法实际上并不是用于一维域插值,更简单的方法就足够了(interp1d 等)。

关于python - 使用 scipy.interpolate.RegularGridInterpolator 出现错误 "There are 100 point arrays, but values has 2 dimensions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763568/

相关文章:

python - 什么是真与假?它与 True 和 False 有何不同?

python - 如何使用 cv2.kmeans 中的标签作为列表的索引?

python - 有人可以解释为什么 scipy.integrate.quad 在积分 sin(X) 时对同样长的范围给出不同的结果吗?

python - 计算巨大稀疏矩阵的点积时出现 MemoryError

scipy - python/scipy、numpy、sympy 中是否有与 Mathematicas RootApproximant 函数等效的函数?

python - 在 Windows 10 的 Bash Shell 上升级 python

Python子类调用父类的方法

python - python3 扫雷排序中的嵌套列表无法正常工作

python - 使用 numpy fromfile 结合 lzma open 读取二进制文件

python - 数据类型 'datetime64[ns]' 和 '<M8[ns]' 之间的区别?