本文已参与「新人创作礼」活动,一起开启掘金创作之路。
【python】矩阵计算:转置、逆与乘积
矩阵定义
由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。记作:
这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数 aij为(i,j)元的矩阵可记为(aij)或(aij)m × n,m×n矩阵A也记作Amn。 元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。
定义常规矩阵
import numpy as np
from numpy import *
x=array([[1,1,1],[2,2,2]])
print("X:",X2)
print("X[0]:",X2[0])
定义0矩阵
import numpy as np
from numpy import *
a=zeros(3)
b=zeros((4,3))
#矩阵切片
c=b[1:3,2:4]
print("a:",a)
print("b:",b)
print("c:",c)
矩阵调用
| 调用方式 | 含义 |
|---|---|
| X[0] | 取矩阵X的第0行所有元素 |
| X[0,:] | 就是取矩阵X的第0行所有元素 |
| X[:,0] | 取矩阵X所有行的第0列的元素 |
| X[:,m:n] | 取矩阵X所有行中的第m到n-1列数据(不包含n列) |
转置
x=array([[1,1,1],[2,2,2]])
y=x.T #转置
print("y:",y)
逆
对A求逆矩阵可直接用 B=np.linalg.inv(A),若需要判断是否可逆则见下文:
import numpy as np
from numpy import *
try:
A = np.array([[1,1],[2,-2]])
print(A)
B=np.linalg.inv(A)
except:
print("矩阵不存在逆矩阵")
else:
print(B)
矩阵不存在见下图:
乘积
点乘
import numpy as np
from numpy import *
x=array([[1,1],[2,2],[2,2]])
x1=array([[1,1,1],[2,2,2]])
A=np.dot(x1,x)
print(A)
叉乘
直接乘号*