NumPy的梯度函数
注:只有一个
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,最右侧:(自身-前面)/1
In [147]: b=np.random.randint(0,50,(3,5))
In [148]: b
Out[148]:
array([[ 6, 21, 42, 22, 11],
[48, 12, 28, 32, 49],
[15, 44, 40, 42, 45]])
In [149]: np.gradient(b) #二维数组的梯度运算
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. ]])] #第二层维度的梯度(横行梯度运算)