Numpy 如何插值5维数组?
我有一个形状数组-[41101,6,4280]。我想插值它,如果我给它一个来自41个温度值和101个密度值的值,它会吐出一个[6,4280]形状的数组。有一个NumPy函数可以处理这个问题吗 让我们一步一步地开始: Q:是否有NumPy功能可以处理此问题 是的,有 第一步是生成一个5DNumpy 如何插值5维数组?,numpy,interpolation,data-analysis,Numpy,Interpolation,Data Analysis,我有一个形状数组-[41101,6,4280]。我想插值它,如果我给它一个来自41个温度值和101个密度值的值,它会吐出一个[6,4280]形状的数组。有一个NumPy函数可以处理这个问题吗 让我们一步一步地开始: Q:是否有NumPy功能可以处理此问题 是的,有 第一步是生成一个5Dnumpy.ndarray的实例,该实例将包含您的已知数据点(不要介意dtype,它只是用来提醒我们,如果以后需要的话,我们可以从位到复杂128值): 现在,让我们验证它的。shape: >>>
numpy.ndarray
的实例,该实例将包含您的已知数据点(不要介意dtype
,它只是用来提醒我们,如果以后需要的话,我们可以从位到复杂128值):
现在,让我们验证它的。shape
:
>>> a5Dtensor.shape
(41, 101, 6, 4, 280)
核心技巧是内置的智能numpy
-切片:
>>> a5Dtensor[0,0,:,:,:].shape
(6, 4, 280)
这确实会返回所请求的数据点的三维立方体。切片技巧在不产生任何新的内存分配方面也是非常聪明的(一旦大小超出一级/二级/三级CPU缓存范围,当您获得的数据超过几GB时,这将非常有趣) A5D传感器[0,0,:,:,:,:]标志 C_:对
F_:False“来自41个温度和101个密度值的值”这到底是什么意思?你是说两个介于0和41之间,以及0和101之间的实数?或者从41和101个元素的两个数组中选取两个实值(其中每个值与5D数组中的相应位置关联)?或者两个这样的数组所覆盖范围内的两个任意实值(并相应地插值)?
>>> a5Dtensor[0,0,:,:,:].shape
(6, 4, 280)
>>> a5Dtensor[0,0,:,:,:].flags
C_CONTIGUOUS : True
F_CONTIGUOUS : False <------ may enjoy FORTRAN efficient data layout, where needed
OWNDATA : False <------ 3D-cube data not "copied", rather "viewed" inside 5D
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False