我有一个粒子立方体,我已经将其投影到2D网格上,通过网格中的云将粒子投影到网格上,并用标量对它们进行加权。
然后我想在每个网格点上标量的梯度。在2D中,我使用np.gradient来做这件事,我得到了两个在x和y方向上具有梯度的数组:
gradx, grady = np.gradient(grid)有人知道我如何将其推广到3维吗?在3D中的单元格中的云是很好的,但是我留下了一个形状为(700,700,700)的网格。
据我所知np.gradient不能处理这件事?
谢谢,丹尼尔
发布于 2012-10-30 22:49:37
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。
https://stackoverflow.com/questions/13141420
复制相似问题