函数 | 说明 |
---|---|
np.gradient(f) | 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度 |
梯度:连续值之间的变化率,即斜率
XY坐标轴连续三个X坐标对应的Y轴值:a, b, c,其中,b的梯度是: (c‐a)/2
In [144]: a=np.random.randint(0,20,(5))
In [145]: a
Out[145]: array([ 2, 8, 15, 13, 15])
In [146]: np.gradient(a)
Out[146]: array([ 6. , 6.5, 2.5, 0. , 2. ]) #有两侧值,两边值相减/2;只有一侧值,后面的减前面的/1
In [147]: c=np.random.randint(0,50,(3,5))
In [148]: c
Out[148]:
array([[ 6, 21, 42, 22, 11],
[48, 12, 28, 32, 49],
[15, 44, 40, 42, 45]])
In [149]: np.gradient(c)
Out[149]:
[array([[ 42. , -9. , -14. , 10. , 38. ],
[ 4.5, 11.5, -1. , 10. , 17. ],
[-33. , 32. , 12. , 10. , -4. ]]), #最外层维度的梯度
array([[ 15. , 18. , 0.5, -15.5, -11. ],
[-36. , -10. , 10. , 10.5, 17. ],
[ 29. , 12.5, -1. , 2.5, 3. ]])] #第二层维度的梯度