numpy的梯度函数np.gradient(f)

本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。
np.gradient(f):用于计算数组f中元素的梯度,当f为多维时,返回每个维度的梯度。

a = np.random.randint(0,20,(5,))
a
array([10,  0,  7,  0, 19])
np.gradient(a)
array([-10. ,  -1.5,   0. ,   6. ,  19. ])

由梯度计算公式得到梯度计算结果-1.5=(7-10)/2,-10=(0-10)/1。
二维数组的梯度计算:

c = np.random.randint(0,50,(3,5))
c
array([[25, 49, 14, 13, 20],
       [43,  6, 13, 15, 24],
       [ 9,  2,  7,  5, 36]])
np.gradient(c)
[array([[ 18. , -43. ,  -1. ,   2. ,   4. ],
        [ -8. , -23.5,  -3.5,  -4. ,   8. ],
        [-34. ,  -4. ,  -6. , -10. ,  12. ]]),
 array([[ 24. ,  -5.5, -18. ,   3. ,   7. ],
        [-37. , -15. ,   4.5,   5.5,   9. ],
        [ -7. ,  -1. ,   1.5,  14.5,  31. ]])]

对于二维数组,任意一个元素的梯度存在两个方向,所以求得的梯度为两个数组对象,第一个数组表示最外层维度的梯度值,第二个数组表示第二层维度的梯度值。
对于n维数组,gradient函数会生成n个数组,每个数组代表元素在第n个维度的梯度变化值,梯度反应了元素的变化率,尤其是我们在进行图像,声音等数据处理,梯度有助于帮助我们发现图像和声音的边缘,在那些变化不是很平缓的地方,可以很容易的发现。

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值