Numpy 如何插值5维数组?

Numpy 如何插值5维数组?,numpy,interpolation,data-analysis,Numpy,Interpolation,Data Analysis,我有一个形状数组-[41101,6,4280]。我想插值它,如果我给它一个来自41个温度值和101个密度值的值,它会吐出一个[6,4280]形状的数组。有一个NumPy函数可以处理这个问题吗 让我们一步一步地开始: Q:是否有NumPy功能可以处理此问题 是的,有 第一步是生成一个5Dnumpy.ndarray的实例,该实例将包含您的已知数据点(不要介意dtype,它只是用来提醒我们,如果以后需要的话,我们可以从位到复杂128值): 现在,让我们验证它的。shape: >>>

我有一个形状数组-[41101,6,4280]。我想插值它,如果我给它一个来自41个温度值和101个密度值的值,它会吐出一个[6,4280]形状的数组。有一个NumPy函数可以处理这个问题吗

让我们一步一步地开始:

Q:是否有NumPy功能可以处理此问题

是的,有

第一步是生成一个5D
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