如何在numpy/scipy中获取插值数组值

2024-09-28 22:53:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道怎样才能得到三维数组的插值值。我试图得到一个3d数组的,例如位置:(1.4,2.3,4.2)的值。如何得到插值?在

counterX = 1.5 
counterY = 1.5 
counterZ = 1.5 

for x in range(0, length)
    for y in range(0, length)
        for z in range(0, length)
            value = img[counterX, counterY, counterZ]
        counterZ = 0
    counterY = 0

counterX、counterY和counterZ是浮点值,而不是整数。但是我不能css他们int(…),因为我的结果需要非常精确。因此,我认为插值是最好的解决方案。在


Tags: inimgforvaluerange整数数组length
2条回答

我不知道你到底有什么问题。在

是否要根据一些观测值创建插值数组?然后我个人推荐使用kriging模型,pyKriging似乎能做到这一点,但我从未亲自使用过。在

然后你可以创建一个函数(使用通过kriging建立的预测模型),用3个参数counterX,counterY和counterZ,在任何位置计算预测值。在

只需进行三线性插值,如下所述: https://en.wikipedia.org/wiki/Trilinear_interpolation

对于您的示例,这将是:

C00 = (1,2,4)*0.6 + (2,2,4)*0.4
C01 = (1,3,4)*0.6 + (2,3,4)*0.4
C10 = (1,2,5)*0.6 + (2,2,5)*0.4
C11 = (1,3,5)*0.6 + (2,3,5)*0.4

C0 = C00*0.8 + C10*0.2
C1 = C01*0.8 + C11*0.2

C = C0*0.7 + C1*0.3

相关问题 更多 >