【发布时间】:2011-07-16 17:37:41
【问题描述】:
我有一个 ndarray (Z),在矩形网格 (X, Y) 上有大约 500000 个元素。
现在我想在 x,y 中的大约 100 个位置插入值,这些位置不一定在网格上。
我有一些代码在 Matlab 中工作:
data = interp2(X,Y,Z, x,y);
但是,当我尝试对 scipy.interpolate 使用相同的方法时,我会收到各种错误,具体取决于方法。例如,如果我指定 kind = 'linear',interp2d 会因 MemoryError 而失败,如果我指定 kind='cubic',则出现“OverflowError: Too many data points to interpolate”。我也尝试过Rbf 和bisplev,但它们也失败了。
所以问题是:是否有允许对大型矩阵进行插值的插值函数?是否有其他解决方案? (或者我是否必须编写一个函数来选择点周围的合适区域进行插值,然后调用 interp2d?)
另外:如何处理复数?
【问题讨论】:
-
想展示您的代码吗? 500000并不是那么大。谢谢
标签: python matlab scipy interpolation