python数据分析之NumPy数据存取与函数4

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. ]])]  #第二层维度的梯度(横行梯度运算)
发布了28 篇原创文章 · 获赞 8 · 访问量 2869

猜你喜欢

转载自blog.csdn.net/atuo200/article/details/98974285