zoukankan      html  css  js  c++  java
  • numpy 数组的计算

    一、数组和数的计算

    数组和数计算,数组中的每个元素和数进行计算

    1、加

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    print(arr1)
    
    # 数组的每个元素和数进行加法运算
    arr2 = arr1 + 2
    print(arr2)

    2、减

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    # 数组的每个元素和数进行减法运算
    arr2 = arr1 - 2
    print(arr2)

    3、乘

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    # 数组的每个元素和数进行乘法运算
    arr2 = arr1 * 2
    print(arr2)

    4、除

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    # 数组的每个元素和数进行除法运算
    arr2 = arr1 // 2
    print(arr2)

    注意:

    nan:  a/b, a和b都是0

    inf: a/b, b是0,a非0

    二、数组和数组的计算

    1、数组的形状相同

    a、加

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    arr2 = np.arange(24, 36).reshape(3, 4)
    # 数组中对应位置的元素分别相加
    arr3 = arr1 + arr2
    print(arr3)

    b、减

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    arr2 = np.arange(24, 36).reshape(3, 4)
    # 数组中对应位置的元素分别相减
    arr3 = arr1 - arr2
    print(arr3)

    c、乘

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    arr2 = np.arange(24, 36).reshape(3, 4)
    # 数组中对应位置的元素分别相乘
    arr3 = arr1 * arr2
    print(arr3)

    d、除

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4)
    arr2 = np.arange(24, 36).reshape(3, 4)
    # 数组中对应位置的元素分别相除
    arr3 = arr1 / arr2
    print(arr3)
    print(arr3.dtype)
    # 数组中的每个元素保留两位小数
    arr4 = np.round(arr3, 2)
    print(arr4)

    2、数组的形状不相同

    a、列数相同

    import numpy as np
    
    arr1 = np.arange(12, 24).reshape(3, 4)
    arr2 = np.arange(3, 7).reshape(4,)
    #
    arr3 = arr1 + arr2
    print(arr3)
    #
    arr4 = arr2 - arr1
    print(arr4)
    #
    arr5 = arr1 * arr2
    print(arr5)
    #
    arr6 = arr1 / arr2
    print(arr6)

    b、行数相同

    import numpy as np
    
    arr1 = np.arange(12, 24).reshape(3, 4)
    arr2 = np.arange(3, 6).reshape(3, 1)
    #
    arr3 = arr1 + arr2
    print(arr3)
    #
    arr4 = arr2 - arr1
    print(arr4)
    #
    arr5 = arr1 * arr2
    print(arr5)
    #
    arr6 = arr1 / arr2
    print(arr6)

    注意:数组的计算遵循numpy的广播原则

    三、广播原则

    1、官方概念

    如果两个数组的后缘维度(从末尾开始计算的维度)的轴长度相符或其中一方的长度为1,则认为它们是广播兼职的。
    广播会在缺失和(或)长度为1的维度上进行。

    2、自己理解

    a.数组求shape
    b.从shape的最后一位开始比较
    c.1可以看成任意数, 如(2, 2, 3)和(2, 1) 可以进行运算
    d.缺失的部分忽略,如(2, 2, 3)和(3,) 可以进行运算
    e.运算在缺失或长度为1的维度上进行

    四、轴

    1.轴:
    在numpy中可以理解为方向,使用0,1,2...数字表示
    数组shape的index, 0轴 1轴
    2.轴长度:
    包含数据的条数
    数组shape的值
  • 相关阅读:
    ubuntu切换中英文通用方法,ubuntu中文语言
    ubuntu安装ibus-goolepinyin通用方法
    ubuntu12.04 64位系统配置jdk1.6和jdk-6u20-linux-i586.bin下载地址
    ubuntu创建桌面快捷方式
    vim记住上次编辑和浏览位置
    ubuntu12.04安装tftp,配置,修改目录,错误类型
    Ubuntu 12.04 make menuconfig 出现 Unable to find the ncurses libraries or the required header files.
    nginx六 之Session共享
    nginx五 之高可用
    nginx四 之缓存模块
  • 原文地址:https://www.cnblogs.com/wt7018/p/11954741.html
Copyright © 2011-2022 走看看