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的值
  • 相关阅读:
    apache 虚拟主机配置(根据不同的域名映射到不同网站)
    Tortoise SVN 使用笔记
    Apache 根据不同的端口 映射不同的站点
    jquery 获取当前元素的索引值
    修改ThinkPHP的验证码类
    NetBeans无法使用编码GBK安全地打开该文件
    在win2003下apache2.2无法加载php5apache2_4.dll
    我看软件工程
    PHP函数参数传递(相对于C++的值传递和引用传递)
    Notepad++ 使用正则表达式查找替换字符串
  • 原文地址:https://www.cnblogs.com/wt7018/p/11954741.html
Copyright © 2011-2022 走看看