• Numpy 的广播机制


    广播机制在numpy中居于非常重要的位置,也是numpy高效计算的秘密武器,有必要进行深入彻底的理解,简而言之,它的规则如下:

    • 规则1:如果两个数组在维度上不一样,那么维度低的数组用1(1个或者多个)从左边开始填充。
    • 规则2:如果维度数一样,在每个维度上的形状数不一样,那么该维度上的形状数为1的拉伸来与对方的形状数一样
    • 规则3:如果彼此任何维度上的形状数不一致,并且不为1,则报错

    例1

    image-20210104231517469

    M的形状是(2,3)

    a的形状是(3,)

    根据规则1,先用“1”填充a最左边的维度,填充成(1,3)

    然后再根据规则2,对同一维度但形状不同而形状是1的进行拉伸,

    所以a广播变成了[[0,1,2],[0,1,2]],此时维度拉伸成了(2,3)

    最后再相加。

    例2

    image-20210104232728991

    a.shape-->(3,1)

    b.shape--->(3,)

    首先b填充为(1,3)

    然后a拉伸为(3,3)

    b拉伸为(3,3)

    附np.newaxis用法

    np.newaxis的作用主要就是对数组进行升维,一般配合:使用,而:可以理解为'遍历第n层维度',然后'进入下一维度',np.newaxis可理解为在遍历第n维前,对第n维整体再加一个维度,即在外面'套上'[...]

    ##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
  • 相关阅读:
    miniSpartan6, another Spartan 6 Kit
    XuLA/XuLA2
    Papilio Pro Boards
    STM32 Hardware Development
    Configuring spartan 6 using mcu and spi flash
    STM32 IO口双向问题
    [Projet] Module NFC
    Spartan-6 FPGA Configuration
    TRF7970A IC Communication Interface
    电动门/汽车遥控器拷贝机
  • 原文地址:https://www.cnblogs.com/johnyang/p/14233165.html
Copyright © 2020-2023  润新知