【发布时间】:2018-09-08 11:32:48
【问题描述】:
我有一个高斯,我使用numpy.gradient 函数计算它的梯度。我想对梯度做些微的改变,然后得到一个稍微修改过的高斯。
python中有没有可以计算梯度倒数的函数?
我已经检查了此链接Inverse of n-dimensional numpy.gradient,但找不到解决方案。
【问题讨论】:
-
你必须整合,但你可能会遭受不准确的影响
我有一个高斯,我使用numpy.gradient 函数计算它的梯度。我想对梯度做些微的改变,然后得到一个稍微修改过的高斯。
python中有没有可以计算梯度倒数的函数?
我已经检查了此链接Inverse of n-dimensional numpy.gradient,但找不到解决方案。
【问题讨论】:
在1D 中,以下sn-p 反转np.gradient:
>>> A = scipy.stats.norm().pdf(np.linspace(-1, 1, 19))
>>> A
array([0.24197072, 0.26874286, 0.29481487, 0.31944801, 0.34189229,
0.36142383, 0.37738323, 0.38921247, 0.39648726, 0.39894228,
0.39648726, 0.38921247, 0.37738323, 0.36142383, 0.34189229,
0.31944801, 0.29481487, 0.26874286, 0.24197072])
>>>
>>> a = np.gradient(A)
>>>
>>> A[0] + 2 * np.c_[np.r_[0, a[1:-1:2].cumsum()], a[::2].cumsum() - a[0] / 2].ravel()[:len(a)]
array([0.24197072, 0.26874286, 0.29481487, 0.31944801, 0.34189229,
0.36142383, 0.37738323, 0.38921247, 0.39648726, 0.39894228,
0.39648726, 0.38921247, 0.37738323, 0.36142383, 0.34189229,
0.31944801, 0.29481487, 0.26874286, 0.24197072])
【讨论】: