繁体   English   中英

Python:计算3D网格的渐变

[英]Python: Calculate the Gradient of a 3D grid

我有一个粒子立方体,我投射到2D网格上,通过细胞中的云将粒子投射到网格上,并用标量加权。

然后我会喜欢每个网格点处的标量梯度。 在2D中,我使用np.gradient进行此操作,我得到两个在x和y方向上具有渐变的数组:

gradx, grady = np.gradient(grid)

有谁知道如何将其概括为3维度? 3D中的细胞中的云很好,但我留下了一个形状为(700,700,700)的网格。

据我np.gradient无法处理这个问题?

谢谢,丹尼尔

Numpy文档表明gradient适用于任何维度:

numpy.gradient(f, *varargs)

返回N维数组的渐变。

使用内部的中心差异和边界处的第一个差异来计算梯度。 因此,返回的渐变具有与输入数组相同的形状。

参数:

f: array_like. 包含标量函数样本的N维数组。

*varargs: 0,1或N个标量指定每个方向的采样距离,即:dx,dy,dz,...默认距离为1。

退货:

g: ndarray. 与f相同形状的N个阵列给出关于每个维度的f的导数。

好像你应该能够像你期望的那样将二维码扩展到3D。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM