Python的广播机制什么时候用到,用法是怎样

Admin 2022-05-20 群英技术资讯 414 次浏览

这篇文章主要介绍“Python的广播机制什么时候用到,用法是怎样”,有一些人在Python的广播机制什么时候用到,用法是怎样的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。


 


目录
  • 为什么会有广播机制
  • 在矩阵或向量相关运算中的广播机制
    • 1、一般的运算
    • 2、一个矩阵一个向量的情况
    • 3、两个向量
    • 4、矩阵乘法的广播机制
  • 总结

    为什么会有广播机制

    python语言在设计的时候,就就考虑到用于两个运算的矩阵向量维度不匹配的问题。例如,我们有矩阵A,让矩阵每个元素都加1,直接使用
    A+1,就可以完成目的。这其中就用到了python的广播机制,所以在很多python的第三方库中,都支持广播机制,例如Numpypytorch

    在矩阵或向量相关运算中的广播机制

    1、一般的运算

    假设我们有一个矩阵A,一个矩阵B,它们的 + - * 运算,就是一一对应元素的操作

    2、一个矩阵一个向量的情况

    矩阵 A ∈ R 3 × 3 A\in R^{3\times 3} A∈R3×3 与向量 b ∈ R 1 × 3 b\in R^{1\times 3} b∈R1×3 的运算,向量 b ∈ R 1 × 3 b\in R^{1\times 3} b∈R1×3会根据矩阵A的维度,扩展自身的维度, [ 1 × 3 ] → [ 3 × 3 ] [1\times 3]\to[3 \times 3] [1×3]→[3×3], 第一个维度大小是1,所以就会向列的方向扩展,即复制多个行。如图所示。

    同样,如果向量 b ∈ R 3 × 1 b\in R^{3\times 1} b∈R3×1 ,就会向行扩展,即复制多个列。

    3、两个向量

    如果两个向量的size相同,那就没话说了,运算之后也还是向量,只有在两个向量size不相同的时候才有广播。
    向量 a ∈ R 3 × 1 a\in R^{3\times 1} a∈R3×1 向量 b ∈ R 1 × 3 b\in R^{1\times 3} b∈R1×3 或者向量 b ∈ R 3 b\in R^{3} b∈R3,两者的size就不一样了。向量a会向维度大小为1的方向扩张,b也是这样。
    值得注意的是,我们使用numpy的时候,

    # 构造一个向量 
    import numpy as np
    a = np.arange(10)  # (10,None)	
    
    a是只有一个维度的。不管你是旋转还是转置,它都不会变化。要想实现广播,就要给a增加一个维度
    
    import numpy as np
    a = np.arange(10)
    a = np.expand_dims(a,1)  # (10,1)
    

    4、矩阵乘法的广播机制


    上述内容具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多"Python的广播机制什么时候用到,用法是怎样"的内容,大家可以关注群英网络的其它相关文章。 群英智防CDN,智能加速解决方案
    标签: python广播机制

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    猜你喜欢

    成为群英会员,开启智能安全云计算之旅

    立即注册
    专业资深工程师驻守
    7X24小时快速响应
    一站式无忧技术支持
    免费备案服务
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    在线客服
    微信公众号
    返回顶部
    返回顶部 返回顶部
    在线客服
    在线客服