• 四、Numpy基础:数组运算及内置函数


    一、矢量运算

    • 数组不用循环即可对每个元素执行批量的算术运算操作,这个过程叫做矢量化,即用数组表达式代替循环的做法。
    • 矢量化数组运算性能比纯Python方式快上一两个数据级。
    • 大小相等的两个数组之间的任何算术运算都会将其运算应用到元素级上的操作。

    元素级操作:在NumPy中,大小相等的数组之间的运算,为元素级运算,即只用于位置相同的元素之间,所得的运算结果组成一个新的数组,运算结果的位置跟操作数位置相同。

     

    类型 函数 运算符 说明
    基础运算 add(a,b[,c]) c=a+b 加法
    subtract(a,b[,c]) c=a-b 减法
    multiply(a,b[,c]) c=a*b 乘法
    divide(a,b[,c]) c=a/b 除法(python3中,divide与true_divide用法相同)
    floor_divide(a,b[,c]) c=a//b 除法,结果向下取整
    negative(a[,c]) c=-a 取反
    power(a,b[,c]) c=a**b a的b次方
    remainder(a,b[,c]) c=a%b 取模(亦可写作mod(a,b[,c]))
    fmod(a,b[,c]) None 带符号取模,正负由a决定
    比较运算 equal(a,b[,c]) c=a==b 比较结果c是布尔数组
    not_equal(a,b[,c]) c=a!=b
    less(a,b[,c]) c=a<b
    less_equal(a,b[,c]) c=a<=b
    greater(a,b[,c]) c=a>b
    greater_equal(a,b[,c]) c=a>=b
    统计运算  sum(a[,axis,c]) None 总和:可以通过axis参数定义统计维度
    min(a[,axis,c]) None  最小值:可以通过axis参数定义统计维度
    max(a[,axis,c]) None  最大值:可以通过axis参数定义统计维度
    mean(a[,axis,c]) None 平均值:可以通过axis参数定义统计维度
    std(a[,axis,c]) None 标准差:可以通过axis参数定义统计维度
    var(a[,axis,c]) None 方差:可以通过axis参数定义统计维度
    median(a[,axis,c]) None 中位数:可以通过axis参数定义统计维度
    ptp(a[,axis,c]) None 极差:最大值最小值之差
    diff(a[,axis,c]) None 离散差:相邻数组元素的差值构成的数组
    三角函数运算 sin(a[,axis,c]),arcsin(a[,axis,c]) None 正弦(反正弦)
    cos(a[,axis,c]),arccos(a[,axis,c]) None 余弦(反余弦)
    tan(a[,axis,c]),arctan(a[,axis,c]) None 正切(反正切)
    sinh(a[,axis,c]),arcsinh(a[,axis,c]) None 双曲型正弦(反双曲型正弦)
    cosh(a[,axis,c]),arccosh(a[,axis,c]) None 双曲型余弦(反双曲型余弦)
    tanh(a[,axis,c]),arctanh(a[,axis,c]) None 双曲型正切(反双曲型正切)
    对数运算 log(a[,axis,c]) None 以e为底a的对数值
    log2(a[,axis,c]) None 以2为底a的对数值
    log10(a[,axis,c]) None 以10为底a的对数值
    log1p(a[,axis,c]) None 以e为底a+1的对数值

     

     

    二、内置函数 

     2.1、np.where

    • numpy版的三元表达式,用于特定条件的矢量元素判定,格式:where(condition,arr1,arr2),释义:arr1 if condition else arr2(如果arr1满足condition条件,就选arr1,否则选arr2)
    import numpy as np
    a=np.linspace(-1.1,-1.5,5)
    b=np.linspace(-2.1,-2.5,5)
    condition=a<b
    python=[x if c else y for (x,y,c) in zip(a,b,condition)]
    numpy=np.where(condition,a,b)
    print("python版三元表达式:
    {0}
    格式为:{1}".format(python,type(python)))
    print("numpy版三元表达式:
    {0}
    格式为:{1}".format(numpy,type(numpy)))
    >>>
    python版三元表达式:
    [-2.1, -2.2, -2.3, -2.4, -2.5]
    格式为:<class 'list'>
    numpy版三元表达式:
    [-2.1 -2.2 -2.3 -2.4 -2.5]
    格式为:<class 'numpy.ndarray'>
    

    2.2、np.unique

    •  将数组中的元素进行去重操作
    import numpy as np
    a=np.array(["图书","数码","小吃","数码","金属","市场","美食","图书"])
    b=np.unique(a)
    print("原数组:
    ",a)
    print("去重后的数组:
    ",b)
    >>>
    原数组:
     ['图书' '数码' '小吃' '数码' '金属' '市场' '美食' '图书']
    去重后的数组:
     ['图书' '小吃' '市场' '数码' '美食' '金属']
    

      

    还有其它运算方法及内置函数后续补充

     

  • 相关阅读:
    Cayley's Tree Formula & Prufer's Method
    POJ 2262:Goldbach's Conjecture
    The Sieve of Eratosthenes (素数筛选法)
    POJ 2244:Eeny Meeny Moo(稍加变形的约瑟夫问题)
    POJ 1595:Prime Cuts
    iframe标签的使用
    js笔记
    Asp.Net知识点
    Reapte控件的使用
    浮躁十年
  • 原文地址:https://www.cnblogs.com/hezhefly/p/8282942.html
Copyright © 2020-2023  润新知