Python-大型数组的插值2D数组

用户名

我想用形状为8x8的网格插入尺寸为4x4的2D数组“测试”(例如,实际上接近1000x1000)。

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')
Tmdavison

您可以使用scipy.interpolate.interp2d进行此操作numpy.meshgrid

您需要确保新的X和Y范围与旧的范围相同,并且步长较小。这很容易np.linspace

import numpy as np
from scipy import interpolate

mymin,mymax = 0,3
X = np.linspace(mymin,mymax,4)
Y = np.linspace(mymin,mymax,4)

x,y = np.meshgrid(X,Y)

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]])

f = interpolate.interp2d(x,y,test,kind='cubic')

# use linspace so your new range also goes from 0 to 3, with 8 intervals
Xnew = np.linspace(mymin,mymax,8)
Ynew = np.linspace(mymin,mymax,8)

test8x8 = f(Xnew,Ynew)

print test8x8
>>> [[ 1.2514318   1.25144311  1.25145443  1.25146577  1.25147714  1.25148852  1.25149991  1.25151133]
     [ 1.25119317  1.25120449  1.25121583  1.25122719  1.25123856  1.25124995  1.25126137  1.25127281]
     [ 1.25095426  1.2509656   1.25097695  1.25098832  1.25099971  1.25101112  1.25102255  1.25103401]
     [ 1.25071507  1.25072642  1.25073779  1.25074918  1.25076059  1.25077201  1.25078346  1.25079494]
     [ 1.25047561  1.25048697  1.25049835  1.25050976  1.25052119  1.25053263  1.2505441   1.25055558]
     [ 1.25023587  1.25024724  1.25025864  1.25027007  1.25028151  1.25029297  1.25030446  1.25031595]
     [ 1.24999585  1.25000724  1.25001866  1.2500301   1.25004156  1.25005304  1.25006453  1.25007605]
     [ 1.24975557  1.24976698  1.24977841  1.24978985  1.24980132  1.24981281  1.24982433  1.24983587]] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

插值缺失值2d python

来自分类Dev

具有相同值的Python 2D数组

来自分类Dev

在Python中将2D数组中的值相加

来自分类Dev

在2D Python数字字典中插值

来自分类Dev

带2D图像的Python中的Lanczos插值

来自分类Dev

Python 2D插值到随机点

来自分类Dev

Python 2D NumPy数组理解

来自分类Dev

Python中的2D数组操作

来自分类Dev

在python中填充2D数组

来自分类Dev

2D数组的Python频率

来自分类Dev

Python 中的动态数组 2D

来自分类Dev

Python 2D 数组和循环

来自分类Dev

在Python中将大型数据集的1d数组的行号与2d数组的第一个元素匹配

来自分类Dev

Python尝试更新2D numpy数组中的值,值不更新

来自分类Dev

如何在Python中的2d数组中找到值的索引?

来自分类Dev

使用python中的决胜球按顺序排列2D数组中的值

来自分类Dev

python3如何在2d数组中减去(旁边的)值?

来自分类Dev

如何在Python中将2D数组的字符串值转换为整数值?

来自分类Dev

在Python中计算2d数组中未指定值的出现

来自分类Dev

如何在Python中为每个x数组值的唯一y数组插入2D数据?

来自分类Dev

如何使1d数组乘以2d数组导致python的3d数组

来自分类Dev

如何使1d数组乘以2d数组导致python的3d数组

来自分类Dev

我如何从2D数组中选择值并添加到另一个2D数组Python中

来自分类Dev

如何在python中的2d数组中找到多少个值可以整除为某个值

来自分类Dev

在PYTHON上使用griddata的未知插值方法数组

来自分类Dev

Python插值到更大的一维数组

来自分类Dev

Python:将2D数组插入MySQL表

来自分类Dev

将图像作为2D数组导入python

来自分类Dev

Python numpy保留排序的2D数组的索引列表

Related 相关文章

热门标签

归档