我有一个粒子立方体,我投射到2D网格上,通过细胞中的云将粒子投射到网格上,并用标量加权。
然后我会喜欢每个网格点处的标量渐变。在2D中,我使用np.gradient
进行此操作,得到两个在x和y方向具有渐变的数组:
gradx, grady = np.gradient(grid)
有没有人知道如何将其概括为3维度? 3D中的细胞中的云很好,但我留下了一个形状为(700,700,700)的网格。
据我所知np.gradient
无法解决这个问题?
谢谢, 丹尼尔
答案 0 :(得分:3)
Numpy文档表明gradient
适用于任何维度:
numpy.gradient(f, *varargs)
返回N维数组的渐变。
使用内部和中部的中心差异计算梯度 边界的第一个差异。因此返回的梯度具有 与输入数组的形状相同。
参数:
f: array_like.
包含样本的N维数组 标量函数。
*varargs:
0,1或N个标量指定每个方向的采样距离,即:dx,dy,dz,...默认距离为1.退货:
g: ndarray.
N个数组 与f相同的形状给出f的导数 尺寸。
似乎你应该能够像你期望的那样将二维码扩展到3D。