Numpy中的矩阵运算

发布时间:2019-10-15 09:03:58编辑:auto阅读(1900)

    安装与使用

    大型矩阵运算主要用matlab或者sage等专业的数学工具,但我这里要讲讲python中numpy,用来做一些日常简单的矩阵运算!这是 numpy官方文档,英文不太熟悉的,还有 numpy中文文档

    numpy 同时支持 python3 和 python2,在 python3 下直接pip install安装即可,python2 的话建议用 .whl 安装,你可以在 这里查询 和你 python2 版本对应的 whl 文件。如果你使用 python2.7,我这里有打包好的 安装文件

    常用函数

    import numpy as np
    
    np.array([[1,2,3],[4,5,6]]) # 定义一个二维数组
    np.mat([[1,2,3],[4,5,6]]) # 定义一个两行三列矩阵
    np.mat(list) # 列表或者数组转 matrix(矩阵)
    np.tolist(matrix) # 与上面相反
    np.shape(array) # 求矩阵或者数组array的维度
    array.reshape(m,n) # 数组或矩阵重塑为m行n列
    np.eye(m,n) # 创建m行n列单位矩阵
    np.zeros([m,n],dtype) # 创建初始化为0的矩阵
    # .transpose()转置矩阵 .inv()逆矩阵
    # .T转置矩阵,.I逆矩阵

    举个栗子

    # python3
    import numpy as np
    
    # 先创建一个长度为12的列表,,再重塑为4行3列的矩阵
    list1 = [0,1,2,3,4,5,6,7,8,9,0,1]
    list1_to_mat = np.mat(list1) # 列表先转成矩阵 
    mat1 = list1_to_mat.reshape(4,3) # 重塑
    print(mat1)
    # 求上面矩阵的转置矩阵和逆矩阵
    mat_transpose = mat1.T
    mat_inv = mat1.I
    # 再定义一个3行4列的数组转成矩阵,和上面矩阵相乘
    array1 = np.array([[1,2,3,4],[4,5,6,7],[3,2,1,0]])
    mat2 = np.mat(array1)
    print(mat2)
    print(mat2*mat1) # 或者你可以用 np.dot()以及 np.multiply()

    要注意:numpy 的数组和 python 的列表是有区别的,比如:列表 list 只有一维。然后 numpy 的数组和矩阵也有区别!比如:矩阵有逆矩阵,数组是没有逆的!!

    END

关键字