zoukankan      html  css  js  c++  java
  • Python:基本运算、基本函数(包括复数)、Math模块、NumPy模块

    基本运算

    • x**2 : x^2 若x是mat矩阵,那就表示x内每个元素求平方
    • inf:表示正无穷
    • 逻辑运算符:and,or,not

    字典的get方法

    a.get(k,d)
    • 1
    • 1

    get相当于一条if…else…语句。若k在字典a中,则返回a[k];若k不在a中,则返回参数d。

    l = {5:2,3:4}
    l.get(3,0)  返回值是4;
    l.get1,0)  返回值是0
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    type函数:返回数据类型

    type(x):返回x的类型
    type(x)._name_:返回该类型的字符串表示
    • 1
    • 2
    • 1
    • 2

    len函数:获得list或str的长度

    reload函数:将之前导入过的模块重新加载进来

    对复数的处理

    complex(a,b)    #建立a+bj的复数
    complex('2+1j') #将字符串形式的复数转成复数
    real(x)         #取复数x的实部
    imag(x)         #取复数x的虚部
    abs(x)          #求x的模
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    next函数

    本函数是返回迭代器的下一个元素的值。 
    Python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。

    my_generator = (letter for letter in 'abcdefg')
    next(my_generator)
    
    >>>'a'
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    math模块

    Python内置math模块,提供大部分常用数学运算函数。

    使用 math 模块

    math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:

    >>> import math
    • 1
    • 1

    常用函数

    ceil(x) 取顶
    floor(x) 取底
    fabs(x) 取绝对值
    factorial (x) 阶乘
    hypot(x,y) 计算sqrt(x*x+y*y)
    pow(x,y) x的y次方
    sqrt(x) 开平方
    log(x)
    log10(x)
    trunc(x)  截断取整数部分
    isnan (x)  判断是否NaN(not a number)
    degrees (x) 弧度转角度
    radians(x) 角度转弧度
    sin(x)
    cos(x)
    tan(x)
    asin(x)
    acos(x)
    atan(x)
    
    #例子:
    a=math.atan(x)  #计算x的反正切值
    seta=math.degrees(a)    #将弧度制表示的a转换成角度制表示的seta
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    Numpy模块

    模块的导入

    from numpy import array/mat/shape/*
    
    mm=array([1,2,3])   //
    ss=mat([1,2,3])
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    Numpy中,mat必须是2维的,但是array可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。 
    在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。

    a=mat([1,2,3]) 是矩阵,则 a.A 则转换成了数组,反之,a.M则转换成了矩阵

    数组array

    数组array的参数是列表,有

    a=array([1,2,3])
    b=array([[1,2,3],[4,5,6])
    • 1
    • 2
    • 1
    • 2

    它有以下一些属性:

    a.ndim      #秩,是数组轴的个数
    a.shape     #数组的维度
    a.size      #元素的总个数
    a.dtype     #一个用来描述数组中元素类型的对象
    a.dtype.name    #返回字符串形式的类型名
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    常用的Numpy运算

    取矩阵中的某一行 ss[1,:] 或该行的某两列 ss[1,0:2] 
    将数组转换成矩阵 randMat=mat(random.rand(4,4)) 
    矩阵求逆 randMat.I 
    单位阵 eye(4) 
    零矩阵 zeros((x,y)) 建立x行y列的零矩阵 
    最大值和最小值 a.max(),a.min() ,而a.max(0) 表示按列选取每列的最大值 
    最大/小元素的下标 a.argmax(),a.argmin()

    #作为方法
    x.sum()     #所有元素相加
    x.sum(axis=0)   #按列相加
    x.sum(axis=1)   #按行相加
    #作为函数
    sum(a,axis=0)
    
    ss.mean()   
    mean(a,axis=0(或1))  #按列或行求均值
    
    var(a)
    var(a,axis=0(或1))   #按列或行求方差
    
    std(a)
    std(a,axis=0(或1))   #按列或行求标准差
    
    ss.T或ss.transpose()     #转置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    shape的用法

    1. shape作为函数,可以读取矩阵的长度,它的输入参数可以是一个矩阵。例如:
    shape(3):一个单独的数字,返回值为空
    shape([1]):一维矩阵[1]返回值为(1L,)  
    shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3
    1. shape还可以作为矩阵的方法被调用,如
    e=eye(3)
    e.shape
    >>(3L,3L)
    e.shape[0]//读取第一维度的长度
    >>3L
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    tile函数:重复某个数组

    a=[0,1,2]
    b=tile(a,2)
    >>>b=([0,1,2,0,1,2])
    b=tile(a,(2,1))
    >>>b=([[0,1,2],
            [0,1,2]])
    b=tile(a,(1,2))
    >>>b=([[0,1,2],[0,1,2]])
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    range函数:构造等差数列

    range(1,5):代表从1到5,不包含5:[1,2,3,4]
    range(1,5,2):代表从1到5,间隔为2,不包含5:[1,3]
    range(5):代表从0到5,不包含5:[0,1,2,3,4]
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    sort,sorted,argsort函数:排序

    x.sort():

    只可以应用于list对象,且是原地排序,排序过后list发生改变。

    x.argsort():

    得到矩阵每行的升序排序

    sorted函数

    排序并生成新的容器

    一. 如果是普通的列表,可以直接使用sorted,如

    a=[1,4,2,3,7]
    b=sorted(a)
    • 1
    • 2
    • 1
    • 2

    二. 如果是由元祖构成的元祖列表,就比较复杂,假设有

    L=[('b',2),('a',1),('c',3)]
    • 1
    • 1

    有两种写法或格式

    1. cmp格式
    sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
    • 1
    • 1
    1. key格式
    sorted(L,key=lambda x:x[1])
    • 1
    • 1

    其中还有个reverse可选项,reverse=True 则输出倒序,reverse=False 则输出正序。

    三. 如果是字典,那么格式也略复杂 
    假设有dic={'a':31,'bc':52,'c':3,'33':56} 
    在python 3中,可以写成

    sorted(dic.items(),key=lambda d:d[1],reserve=False)
    • 1
    • 1

    其中,dic.items 返回字典键值对的元祖集合set 
    还可以写成

    sorted(dic.items(),key=operator.itemgetter(1),reserve=False)
    • 1
    • 1

    其中,operator.itemgetter() 函数可以获取对象的某些维的数据

    array的形状操作

    a.ravel()   #展平成一维数组,a.flatten() 与之类似
    a.reshape(m,n)  #返回一个新数组,但原数组本身不变
    a.resize(m,n)   #返回一个新数组的同时也改变原数组本身
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    其他通用函数或方法

    a.copy()    #对元素进行复制
    c=sqrt(a)   #计算元素的平方根
    c=exp(a)    
    c=abs(a)
    c=add(a,b)  #a和b对应元素相加
    c=subtract(a,b) #a和b对应元素相减
    c=multiply(a,b) #a和b对应元素相乘
    c=divide(a,b)   #a和b对应元素相除
    nonzero(a)      #返回a中所有不为零的元素的下标位置
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    对array和matrix而言,(a>3)或(a==3) 返回一个同类型的布尔值 
    例如:

    a=array([1,2,3])
    b=(a==2)
    
    >>>b=array([False,True,False])
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    Numpy中的线性代数子库linalg

    linalg中包含了许多线性代数的方法

    linalg.det(a)   #求a的行列式
    linalg.inv(a)   #求a的逆矩阵
    • 1
    • 2
     
    • 1
    • 2

    基本运算

    • x**2 : x^2 若x是mat矩阵,那就表示x内每个元素求平方
    • inf:表示正无穷
    • 逻辑运算符:and,or,not

    基本函数

    字典的get方法

    a.get(k,d)
    • 1
    • 1

    get相当于一条if…else…语句。若k在字典a中,则返回a[k];若k不在a中,则返回参数d。

    l = {5:2,3:4}
    l.get(3,0)  返回值是4;
    l.get1,0)  返回值是0
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    type函数:返回数据类型

    type(x):返回x的类型
    type(x)._name_:返回该类型的字符串表示
    • 1
    • 2
    • 1
    • 2

    len函数:获得list或str的长度

    reload函数:将之前导入过的模块重新加载进来

    对复数的处理

    complex(a,b)    #建立a+bj的复数
    complex('2+1j') #将字符串形式的复数转成复数
    real(x)         #取复数x的实部
    imag(x)         #取复数x的虚部
    abs(x)          #求x的模
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    next函数

    本函数是返回迭代器的下一个元素的值。 
    Python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。

    my_generator = (letter for letter in 'abcdefg')
    next(my_generator)
    
    >>>'a'
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    math模块

    Python内置math模块,提供大部分常用数学运算函数。

    使用 math 模块

    math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:

    >>> import math
    • 1
    • 1

    常用函数

    ceil(x) 取顶
    floor(x) 取底
    fabs(x) 取绝对值
    factorial (x) 阶乘
    hypot(x,y) 计算sqrt(x*x+y*y)
    pow(x,y) x的y次方
    sqrt(x) 开平方
    log(x)
    log10(x)
    trunc(x)  截断取整数部分
    isnan (x)  判断是否NaN(not a number)
    degrees (x) 弧度转角度
    radians(x) 角度转弧度
    sin(x)
    cos(x)
    tan(x)
    asin(x)
    acos(x)
    atan(x)
    
    #例子:
    a=math.atan(x)  #计算x的反正切值
    seta=math.degrees(a)    #将弧度制表示的a转换成角度制表示的seta
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    Numpy模块

    模块的导入

    from numpy import array/mat/shape/*
    
    mm=array([1,2,3])   //
    ss=mat([1,2,3])
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    Numpy中,mat必须是2维的,但是array可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。 
    在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。

    a=mat([1,2,3]) 是矩阵,则 a.A 则转换成了数组,反之,a.M则转换成了矩阵

    数组array

    数组array的参数是列表,有

    a=array([1,2,3])
    b=array([[1,2,3],[4,5,6])
    • 1
    • 2
    • 1
    • 2

    它有以下一些属性:

    a.ndim      #秩,是数组轴的个数
    a.shape     #数组的维度
    a.size      #元素的总个数
    a.dtype     #一个用来描述数组中元素类型的对象
    a.dtype.name    #返回字符串形式的类型名
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    常用的Numpy运算

    取矩阵中的某一行 ss[1,:] 或该行的某两列 ss[1,0:2] 
    将数组转换成矩阵 randMat=mat(random.rand(4,4)) 
    矩阵求逆 randMat.I 
    单位阵 eye(4) 
    零矩阵 zeros((x,y)) 建立x行y列的零矩阵 
    最大值和最小值 a.max(),a.min() ,而a.max(0) 表示按列选取每列的最大值 
    最大/小元素的下标 a.argmax(),a.argmin()

    #作为方法
    x.sum()     #所有元素相加
    x.sum(axis=0)   #按列相加
    x.sum(axis=1)   #按行相加
    #作为函数
    sum(a,axis=0)
    
    ss.mean()   
    mean(a,axis=0(或1))  #按列或行求均值
    
    var(a)
    var(a,axis=0(或1))   #按列或行求方差
    
    std(a)
    std(a,axis=0(或1))   #按列或行求标准差
    
    ss.T或ss.transpose()     #转置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    shape的用法

    1. shape作为函数,可以读取矩阵的长度,它的输入参数可以是一个矩阵。例如:
    shape(3):一个单独的数字,返回值为空
    shape([1]):一维矩阵[1]返回值为(1L,)  
    shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3
    1. shape还可以作为矩阵的方法被调用,如
    e=eye(3)
    e.shape
    >>(3L,3L)
    e.shape[0]//读取第一维度的长度
    >>3L
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5

    tile函数:重复某个数组

    a=[0,1,2]
    b=tile(a,2)
    >>>b=([0,1,2,0,1,2])
    b=tile(a,(2,1))
    >>>b=([[0,1,2],
            [0,1,2]])
    b=tile(a,(1,2))
    >>>b=([[0,1,2],[0,1,2]])
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    range函数:构造等差数列

    range(1,5):代表从1到5,不包含5:[1,2,3,4]
    range(1,5,2):代表从1到5,间隔为2,不包含5:[1,3]
    range(5):代表从0到5,不包含5:[0,1,2,3,4]
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    sort,sorted,argsort函数:排序

    x.sort():

    只可以应用于list对象,且是原地排序,排序过后list发生改变。

    x.argsort():

    得到矩阵每行的升序排序

    sorted函数

    排序并生成新的容器

    一. 如果是普通的列表,可以直接使用sorted,如

    a=[1,4,2,3,7]
    b=sorted(a)
    • 1
    • 2
    • 1
    • 2

    二. 如果是由元祖构成的元祖列表,就比较复杂,假设有

    L=[('b',2),('a',1),('c',3)]
    • 1
    • 1

    有两种写法或格式

    1. cmp格式
    sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
    • 1
    • 1
    1. key格式
    sorted(L,key=lambda x:x[1])
    • 1
    • 1

    其中还有个reverse可选项,reverse=True 则输出倒序,reverse=False 则输出正序。

    三. 如果是字典,那么格式也略复杂 
    假设有dic={'a':31,'bc':52,'c':3,'33':56} 
    在python 3中,可以写成

    sorted(dic.items(),key=lambda d:d[1],reserve=False)
    • 1
    • 1

    其中,dic.items 返回字典键值对的元祖集合set 
    还可以写成

    sorted(dic.items(),key=operator.itemgetter(1),reserve=False)
    • 1
    • 1

    其中,operator.itemgetter() 函数可以获取对象的某些维的数据

    array的形状操作

    a.ravel()   #展平成一维数组,a.flatten() 与之类似
    a.reshape(m,n)  #返回一个新数组,但原数组本身不变
    a.resize(m,n)   #返回一个新数组的同时也改变原数组本身
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3

    其他通用函数或方法

    a.copy()    #对元素进行复制
    c=sqrt(a)   #计算元素的平方根
    c=exp(a)    
    c=abs(a)
    c=add(a,b)  #a和b对应元素相加
    c=subtract(a,b) #a和b对应元素相减
    c=multiply(a,b) #a和b对应元素相乘
    c=divide(a,b)   #a和b对应元素相除
    nonzero(a)      #返回a中所有不为零的元素的下标位置
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    对array和matrix而言,(a>3)或(a==3) 返回一个同类型的布尔值 
    例如:

    a=array([1,2,3])
    b=(a==2)
    
    >>>b=array([False,True,False])
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4

    Numpy中的线性代数子库linalg

    linalg中包含了许多线性代数的方法

    linalg.det(a)   #求a的行列式
    linalg.inv(a)   #求a的逆矩阵
  • 相关阅读:
    dubbo注册zookeeper保错原因
    Django 终端打印SQL语句
    Django 的orm模型
    Django 的路由系统
    Django 开端
    前端 jq的ajax请求
    前端 后台
    前端 JQ操作
    前端 链式操作
    前端 JQ事件操作
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6030073.html
Copyright © 2011-2022 走看看