在学习的过程中,经常需要对矩阵进行操作。本文对经常用到的矩阵操作进行一定的整理。(更新ing,后续不定期增添修改)
基于 numpy
导入 numpy
import numpy as np
生成数组
# 指定特定的数生成数组
mat = np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9]...])
# 生成指定维数的全0数组
mat = np.zeros(3) #生成3维全0数组
mat = np.zeros((3, 3)) #生成3*3全0数组
# 生成指定维数的全1数组
mat = np.ones(3) #生成3维全1数组
mat = np.ones((3, 3)) #生成3*3全1数组
# 生成符合正态分布的随机数数组
np.random.normal(0, 0.01, (2, 1)) # 生成均值为0, 方差为0.01,维度为2*1的随机数数组
矩阵数组操作
# 查看维度
mat.shape
# 转置
mat.T
# 矩阵相乘 要求m*k的矩阵mat1与k*n矩阵mat2相乘
mat1 * mat2
# 矩阵点乘,要求m*n的矩阵mat1与m*n矩阵mat2相乘
np.multuply(mat1, mat2)
其他操作方式,
from numpy.linalg import *
# numpy.linalg:线性代数相关的函数
# 矩阵求逆
inv(mat)
# 转置
mat.transpose()
# 行列式
det(mat)