[英]Interpolate large data Python
我正在研究一個使用NumPy
和SciPy
的Python項目。 我有以下內容:
x = numpy.arange(-5,5,0.01)
y = numpy.arange(-5,5,0.01)
我也有x
和y
的功能
# fxy = function of x and y in a grid
# fxy.shape = (y.shape[0], x.shape[0])
我想插入fxy
使得我在x
和y
點的函數值分別為0.0001
或0.001
,即我想評估函數fxy
at
finer_x = numpy.arange(-5,5,0.0001)
finer_y = numpy.arange(-5,5,0.0001)
# finer_fxy = function of finer_x and finer_y in a grid
# finer_fxy.shape = (finer_y.shape[0], finer_x.shape[0])
我一直試圖使用bisplrep
和interp2d
功能scipy.interpolate
,但我得到
File "/usr/lib/python2.7/dist-packages/scipy/interpolate/fitpack.py", line 873, in bisplrep
tx,ty,nxest,nyest,wrk,lwrk1,lwrk2)
MemoryError
和
OverflowError: Too many data points to interpolate
分別使用這些功能。 創建插值數據的最佳方法是什么?
顯然,你在你的NumPy盤子上放了太多分,不好意思聽到這個。
我的建議是首先繪制數據,找到相對線性的區域,然后跳過它們。 也就是說,嘗試將陣列分解為不同的區域,並執行分段插值。
您的數據位於常規網格上:嘗試使用RectBivariateSpline。
bisplrep / interp2d用於分散數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.