矩阵的创建和运算

一、创建矩阵

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))  # 等于单位矩阵

猜你喜欢

转载自blog.csdn.net/qq_40576301/article/details/101387197