我具有由间距xi,yi,zi
所描述的立方网格:numpy的3D meshgrid仅作为视图
xi,yi,zi = [linspace(ox,ox+s*d,s) for ox,s,d in zip(origin,size,delta)]
我也有设置标量值W
的到该电网。 W.shape() == size
。我想用scipy's linear interpolation,这需要输入:
类
scipy.interpolate.LinearNDInterpolator(points, values)
:参数:
points
:花车ndarray,塑造(npoints, ndims)
数据点坐标。
values
:浮动或复杂的形状,形状(npoints, ...)
数据值。
如何从xi,yi,zi
创建一个假的一套points
(通过神奇广播)?现在我正在创建一个中间数组来馈给插值函数 - 有没有更好的方法?
相关问题:Numpy meshgrid in 3D。在这篇文章中的答案实际上创建了网格 - 我只想将其模拟为另一个函数的输入(首选纯粹的numpy解决方案)。
你想要Nxdim数组但是欺骗numpy到不实际分配完整的数组?这是不可能的。你将不得不使用专为常规网格设计的工具,但是我认为在scipy中不存在更高维度的工具。 – seberg 2012-08-16 15:41:15
@Sebastian,你可以模拟更小的数组。例如,如果'x.shape,y.shape =(n,m)',你可以通过采用'[X,Y] ='来创建一个广播的'f(x,y)= x + y' * np.meshgrid(X,Y); S = X + Y',而是'S = x + y [:,np.newaxis]'。有关更多详细信息,请参阅链接问题 – Hooked 2012-08-16 15:51:29
是的,但似乎你想模拟更多的元素,然后实际上是在xi,zi,yi数组中。这是(与stride_tricks)在理论上是可能的。但是由于生成的数组应该是二维的,所以在这种情况下不可能构建它,即使不太可能,scipy也不会在稍后创建副本。 – seberg 2012-08-16 15:55:07