NumPy 线性代数

讨论 程序员内点事
Lv2 初级炼丹师
发布在 NumPy   1078   0
讨论 程序员内点事   1078   0

    NumPy中包含了numpy.linalg模块,提供线性代数运算功能。下表描述了该模块中的一些重要功能。

    SN函数描述1dot()两个数组的点积2vdot()两个向量的点积3inner()两个数组的内积4matmul()两个数组的矩阵乘积5det()计算矩阵的行列式6solve()解线性矩阵方程7inv()求矩阵的乘法逆矩阵

    numpy.dot()

    numpy.dot()计算两个数组的点积。

    示例

    import numpy as np  
    a = np.array([[100,200],[23,12]])  
    b = np.array([[10,20],[12,21]]) 
    
    dot = np.dot(a,b)  #[100 * 10 + 200 * 12, 100 * 20 + 200 * 21] [23*10+12*12, 23*20 + 12*21]
    print(dot)

    输出

    [[3400 6200]
     [ 374  712]]

    numpy.vdot()

    numpy.dot()计算两个向量的点积。

    示例

    import numpy as np  
    a = np.array([[100,200],[23,12]])  
    b = np.array([[10,20],[12,21]])  
    
    vdot = np.vdot(a,b)  # 100 *10 + 200 * 20 + 23 * 12 + 12 * 21
    print(vdot)

    输出

    5528

    numpy.inner()

    numpy.inner()计算两个数组的内积。这个函数返回一维数组内部元素乘积的和。对于n维数组,它返回元素在最后一个轴上的乘积的和。

    示例

    import numpy as np  
    a = np.array([1,2,3,4,5,6])  
    b = np.array([23,23,12,2,1,2])  
    inner = np.inner(a,b)  # 1*23 + 2*23 + 3*12 + 4*2 + 5*1 + 6*2
    print(inner)

    输出

    130

    numpy.matmul()

    numpy.matmul()计算两个数组的矩阵乘积。

    示例

    import numpy as np  
    a = np.array([[1,2,3],[4,5,6],[7,8,9]])  
    b = np.array([[23,23,12],[2,1,2],[7,8,9]])  
    mul = np.matmul(a,b)  
    print(mul)

    输出

    [[ 48  49  43]
     [144 145 112]
     [240 241 181]]

    numpy.linalg.det()

    numpy.linalg.det()计算矩阵的行列式。

    矩阵的行列式可以用对角元素来计算。下面是2×2矩阵的行列式

    A B C D

    det()计算公式:AD - BC

    示例

    import numpy as np  
    a = np.array([[1,2],[3,4]])  
    print(np.linalg.det(a))

    输出

    -2.0000000000000004

    numpy.linalg.solve()

    numpy.linalg.solve()解线性矩阵方程。

    这个函数用于解线性方程,学过线性代数可知,线性方程可以表示为矩阵。

    如下面的方程:

    x + y = 20
    x - y = 10
    
    可以表示为3个矩阵的方程:
    
    矩阵a:
    1   1
    1   -1
    
    矩阵b:
    x
    y
    
    矩阵c:
    20
    10
    
    方程式可以表示为:
    a x b = c

    示例

    numpy.linalg.solve()解线性矩阵方程,得出x,y的值

    import numpy as np  
    a = np.array([[1,1],[1,-1]])  
    c = np.array([[20], [10]])  
    b = np.linalg.solve(a, c)
    
    print(b)

    输出

    [[15.]
     [ 5.]]
    版权声明:作者保留权利,不代表意本站立场。如需转载请联系本站以及作者。

    参与讨论

    回复《 NumPy 线性代数

    EditorJs 编辑器

    沙发,很寂寞~
    反馈
    to-top--btn