最近我一直在尝试测试numpy.gradient函数,但是它的行为对我来说有些奇怪。我创建了一个包含随机变量的数组,然后应用了numpy.gradient函数,但是值似乎很疯狂而且不相关。但是使用numpy.diff时,值是正确的。
所以,在查看numpy.gradient文档后,我发现它在所需维度上使用distance=1。
这就是我的意思:
import numpy as np;
a= np.array([10, 15, 13, 24, 15, 36, 17, 28, 39]);
np.gradient(a)
"""
Got this: array([ 5. , 1.5, 4.5, 1. , 6. , 1. , -4. , 11. , 11. ])
"""
np.diff(a)
"""
Got this: array([ 5, -2, 11, -9, 21, -19, 11, 11])
"""
我不明白第一个结果中的值是怎么来的。如果默认距离应该是1,那么我应该得到与numpy.diff相同的结果。
是否有人能解释一下这里的距离是什么意思?它是相对于数组索引还是数组中的值?如果它取决于值,那么是否意味着numpy.gradient不能用于图像,因为相邻像素的值差异没有固定值?