• 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的值
  • 相关阅读:
    LoadRunner11 问题记录
    安装依赖包时,编译提示依赖库未安装,但实际上已经安装
    Close_wait进程过多
    JS中的混合模式
    JS面相对象
    JS中的工厂模式
    函数式编程Map()&Reduce()
    JavaScript函数参数与调用
    JavaScript中的prototype
    循环
  • 原文地址:https://www.cnblogs.com/wt7018/p/11954741.html
Copyright © 2020-2023  润新知