4
我想插入尺寸为 的2D阵列“测试”为8x8形状的网格为4x4(实际上接近1000x1000)。Python - 用于巨大阵列的插值2D阵列
import numpy as np
X = np.arange(0,4,1)
Y = np.arange(0,4,1)
points = np.vstack((X,Y))
points = points.T #my coordinates
#my values as a 2D array
test = np.array([[ 1.2514318 , 1.25145821, 1.25148472, 1.25151133],
[ 1.25087456, 1.25090105, 1.25092764, 1.25095435],
[ 1.25031581, 1.25034238, 1.25036907, 1.25039586],
[ 1.24975557, 1.24978222, 1.24980898, 1.24983587]])
我尝试使用griddata,但它似乎只工作1D不是吗?因为错误告诉我我有“不同数量的值和点”我做错了吗?
from scipy.interpolate import griddata
grid_x, grid_y = np.mgrid[0:4:8j, 0:4:8j]
grid_z0 = griddata(points, test, (grid_x, grid_y), method='linear')
这很有效! ;)但对于我的情况,它似乎是那里“太多的数据点插入”作为错误:( – user3601754
你的新阵列有多大?也许你可以将它分成子数组来执行插值,然后然后将它们拼接在一起? – tom
例如,请参阅此[其他答案](http://stackoverflow.com/a/5329386/588071) – tom