美文网首页
3-7 Numpy中的矩阵运算

3-7 Numpy中的矩阵运算

作者: SRFHolmes | 来源:发表于2018-06-23 17:01 被阅读0次

    numpy.array中的运算

    给定一个向量,让向量中每一个数乘以2
    a=(0,1,2)
    a * 2=(0,2,4)

    n=10
    L = [i for i in range(n)]
    2 * L
    '''
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    两个L首尾衔接
    '''
    
    A=[]
    for e in L:
        A.append(2 * e)
    
    %%time
    A=[]
    for e in L:
        A.append(2 * e)
    #310ms
    
    %%time
    A=[2*e for e in L]
    #155ms
    
    import numpy as np
    %%time
    A=np.array(2*e for e in L)
    #15.9ms
    
    %%time
    A=2*L
    #7.8ms
    

    Universal Functions

    X = np.arange(1,16).reshape((3,5))
    X+1
    X-1
    X*2
    X/2#浮点
    X//2#整数
    X ** 2#X^2
    '''
    array([[  1,   4,   9,  16,  25],
           [ 36,  49,  64,  81, 100],
           [121, 144, 169, 196, 225]], dtype=int32)
    '''
    
    X%2
    '''
    array([[1, 0, 1, 0, 1],
           [0, 1, 0, 1, 0],
           [1, 0, 1, 0, 1]], dtype=int32)
    '''
    
    1/X
    np.abs(X)
    np.sin(X)
    np.exp(X)
    np.power(3,X)
    =3**X
    #3^X
    
    np.log(X)
    #lnx
    np.log2(X)
    

    矩阵运算

    A=np.arange(4).reshape(2,2)
    B=np.full((2,2),10)
    A+B
    A*B
    #对应元素进行运算
    
    A.dot(B)
    #矩阵乘法
    
    A.T
    #转置
    

    向量和矩阵的运算

    v=np.array([1,2])
    v+A
    
    '''
    array([[1, 3],
           [3, 5]])
    '''
    #和矩阵的每一行做加法
    
    A.shape
    #(2,2)
    A.shape[0]
    #A的行数
    
    np.vstack([v] * A.shape[0])
    #将v向量叠了两次
    
    np.vstack([v] * A.shape[0])+A
    
    np.tile(v,(2,1))
    #将v向量横向叠2次 纵向叠一次
    
    v*A
    '''
    array([[0, 2],
           [2, 6]])
    '''
    
    v.dot(A)
    '''
    array([4, 7])
    '''
    
    A.dot(v)
    '''
    array([2, 8])
    '''
    #v自动变为列向量
    

    矩阵的逆

    invA=np.linalg.inv(A)
    #只能对 方阵 求逆矩阵
    
     X=np.arange(16).reshape((2,8))
    np.linalg.pinv(X)
    #伪逆矩阵
    '''
    array([[-1.35416667e-01,  5.20833333e-02],
           [-1.01190476e-01,  4.16666667e-02],
           [-6.69642857e-02,  3.12500000e-02],
           [-3.27380952e-02,  2.08333333e-02],
           [ 1.48809524e-03,  1.04166667e-02],
           [ 3.57142857e-02, -3.46944695e-18],
           [ 6.99404762e-02, -1.04166667e-02],
           [ 1.04166667e-01, -2.08333333e-02]])
    '''
    

    相关文章

      网友评论

          本文标题:3-7 Numpy中的矩阵运算

          本文链接:https://www.haomeiwen.com/subject/eorlyftx.html