- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 n 个等长数组,其转置对应于 n 维参数空间中的坐标:
x = np.array([800,800,800,800,900,900,900,900,900,1000,1000,1000,1000,1000])
y = np.array([4.5,5.0,4.5,5.0,4.5,5.0,5.5,5.0,5.5,4.5,5.0,5.5,5.0,5.5])
z = np.array([2,2,4,4,2,2,4,4,4,2,2,4,4,4])
参数空间中的每个坐标也有一个值:
v = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14])
我想在网格点之间进行插值以获得给定任意xyz
坐标处的v
值,例如[934,5.1,3.3]
。
我一直在尝试使用scipy.RegularGridInterpolator
,它将(x,y,z)
作为第一个参数,但我不知道如何构造每个点的值的第二个参数。
如有任何建议,我们将不胜感激!谢谢!
最佳答案
您的输入更适合使用LinearNDInterpolator
或NearestNDInterpolator
:
from scipy.interpolate import LinearNDInterpolator
ex = LinearNDInterpolator((x, y, z), v)
ex((800, 4.5, 2))
#array(1.0)
ex([[800, 4.5, 2], [800, 4.5, 3]])
#array([ 1., 2.])
要使用RegularGridInterpolator
,您需要将v
定义为常规数组。例如,假设:
x = np.array([800., 900., 1000.])
y = np.array([4.5, 5.0, 5.5, 6.0])
z = np.array([2., 4.])
数组v
可能类似于:
v = np.array([[[ 1., 2.],
[ 1., 2.],
[ 1., 2.],
[ 1., 2.]],
[[10., 20.],
[10., 20.],
[10., 20.],
[10., 20.]],
[[100., 200.],
[100., 200.],
[100., 200.],
[100., 200.]]])
然后您就可以进行插值:
form scipy.interpolate import RegularGridInterpolator
rgi = RegularGridInterpolator((x, y, z), v)
rgi((850., 4.5, 3.))
#array(8.25)
rgi([[850., 4.5, 3.], [800, 4.5, 3]])
#array([ 8.25, 1.5 ])
关于python - 如何定义 RegularGridInterpolator 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31978154/
我无法理解如何使用 scipy.interpolate.RegularGridInterpolator 对数据进行整形以评估 nD 数组的插值 View 。 考虑A一个(n1,n2,n3)形状的num
我有 n 个等长数组,其转置对应于 n 维参数空间中的坐标: x = np.array([800,800,800,800,900,900,900,900,900,1000,1000,1000,1000
我正在使用 scipy.interpolate.RegularGridInterpolator 和 method='linear'。获取内插值很简单(参见 https://docs.scipy.org
我对 documentation for scipy.interpolate.RegularGridInterpolator 有点困惑. 举例来说,我有一个函数 f: R^3 => R,它是在单位立方
我在尝试运行大学类(class)的代码时遇到问题。主文件 BASEchange.py 尝试导入 2 个名为“NODE”和“MESHMODEL”的模块。反过来,“MESHMODEL”从 scipy.in
我知道有一个post解释了如何做到这一点,但我认为我按照帖子中概述的步骤进行操作,但仍然出现尺寸错误。 这是我尝试过的: import numpy as np from scipy.interpola
我是一名优秀的程序员,十分优秀!