在python中插值二维数据网格
我有一个带有放射性β衰变率的二维网格。每个值对应于特定温度和密度对上的速率(均为对数标度)。我想做的是,当我有一个温度和密度数据对(在得到它们的对数之后),在表中找到匹配的值。我试着使用了,但是我有点困惑,我会很感激你的帮助 到目前为止,我所拥有的:在python中插值二维数据网格,python,arrays,numpy,interpolation,Python,Arrays,Numpy,Interpolation,我有一个带有放射性β衰变率的二维网格。每个值对应于特定温度和密度对上的速率(均为对数标度)。我想做的是,当我有一个温度和密度数据对(在得到它们的对数之后),在表中找到匹配的值。我试着使用了,但是我有点困惑,我会很感激你的帮助 到目前为止,我所拥有的: pointsx = np.array([7+0.2*i for i in range(0,16)]) #temperature range pointsy = np.array([i for i in range(0,11) ]) #rho_el
pointsx = np.array([7+0.2*i for i in range(0,16)]) #temperature range
pointsy = np.array([i for i in range(0,11) ]) #rho_el range
data = numpy.loadtxt(filename) #getting data from file
logT = np.log10(T) #wanted temperature logarithmic
logrho = np.log10(rho) #wanted rho logarithmic
互PN函数具有以下参数:
pointsx
和pointsy
,数据非常明显,xi
将是我正在寻找的(T,rho)
。但我不确定,它们应该有什么尺寸?点的大小与数据的大小相同?因此,我必须将相应的T
和rho
对作为点
部分,然后将(T,rho)
对作为xi
?当您不确定函数如何工作时,打开一个REPL并自己测试它总是一个好主意。在本例中,鉴于您对文档的理解,该函数完全按照预期工作
>>> points = [[1, 2, 3, 4], [1, 2, 3, 4]] # Input values for each grid dimension
>>> values = [[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7]] # The grid itself
>>> xi = (1, 1.5)
>>> scipy.interpolate.interpn(points, values, xi)
array([ 1.5])
>>> xi = [[1, 1.5], [2, 1.5], [2, 2.5], [3, 2.5], [3, 3.5], [4, 3.5]]
>>> scipy.interpolate.interpn(points, values, xi)
array([ 1.5, 2.5, 3.5, 4.5, 5.5, 6.5])
你唯一错过的是点
应该是一个元组。但是从上面可以看到,即使指向的不是元组,它也可以工作你能说一下混淆了什么吗?IpPN函数有以下参数:点,值,Xi,方法=“线性”,BangsSyLoal=真,FILIVALULY = NaNi I图,这些点将是PoxTx和PoothSy,数据是相当明显的,席席是我要找的(T,Rho)。但我不确定,它们应该有什么尺寸?“点”与“数据”大小相同?因此,我必须做一对对应的T和Rho数组,这将是“点”部分,然后有一个(t,ρ)对作为席?