一、创建矩阵
1、mat 创建
直接创建矩阵
m1 = np.mat("1 2 3;4 5 6;7 8 9")
将列表转换为矩阵
m1 = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 可以将列表转化为矩阵
可以将数组转化为矩阵
m1 = np.mat(np.array([[[1, 2, 3], [4, 5, 6]]])) # 可以将数组转化为矩阵
2、matrix创建
matrix
m1 = np.matrix([[1,2,3],[4,5,6],[7,8,9]])
matrix
m1 = np.matrix(np.array([[[1,2,3],[4,5,6]]]))
3、asmatrix
m1 = np.asmatrix(np.array([[[1,2,3],[4,5,6]]]))
4、bmat 进行堆积组合矩阵
arr1 = np.mat(np.arange(4).reshape((2,2)))
arr2 = np.mat(np.arange(4,8).reshape((2,2)))
m2 = np.bmat([[arr1, arr2], [arr2, arr1]])
print("m2:\n", m2)
print("m2 的类型:\n", type(m2))
arr1 = list(np.arange(4).reshape((2, 2)))
arr2 = list(np.arange(4, 8).reshape((2, 2)))
m2 = np.bmat([[arr1, arr2], [arr2, arr1]])
print("m2:\n", m2)
print("m2 的类型:\n", type(m2))
二、矩阵计算
1、相乘
import numpy as np
# 创建一个矩阵
m1 = np.arange(4).reshape((2,2))
print("m1:\n",m1)
print("m1 的类型:\n",type(m1))
# 矩阵与数的相乘--与矩阵的每一个元素相乘
m2 = 3 * m1
print("m2:\n",m2)
2、相加
import numpy as np
# 创建一个矩阵
m1 = np.arange(4).reshape((2,2))
m2 = np.mat(np.arange(1,5).reshape((2,2)))
m3 = m1 + m2
m4 = m1 - m2 #即 m1 + (-m2)
print(m3)
print(m4)
3、相乘
左矩阵列数 等于右矩阵行数 才能进行相乘,生成左矩阵行数、右矩阵列数形状的矩阵
import numpy as np
m1 = np.mat(np.arange(4).reshape((2, 2)))
m2 = np.mat(np.arange(1,5).reshape((2,2)))
res = m1 * m2
# 推荐使用下面这两种 -在某些 情况下 matmul 会比dot 严格一点
# res = np.matmul(m1,m6)
# res = np.dot(m1,m6)
# 矩阵对应元素相乘---需要满足广播机制 ----数组的广播机制
# res = np.multiply(m1,m6) # 必须同形
4、矩阵的转置,逆矩阵,共轭矩阵,视图,视图类型,单位矩阵
import numpy as np
m1 = np.mat(np.arange(4).reshape((2, 2)))
print("m1:\n", m1)
print("m1 的类型:\n", type(m1))
print("矩阵的转置:\n", m1.T)
print("矩阵的逆:\n", m1.I) # A * A.I = E
print("矩阵的共轭转置:\n", m1.H) # 先共轭 在转置 ---》转置
print("矩阵的视图:\n", m1.A)
print("矩阵的视图的类型:\n", type(m1.A))
print(np.matmul(m1, m1.I)) # 等于单位矩阵