Numpy中的矩阵运算

安装与使用

大型矩阵运算主要用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

相关推荐