1 import numpy as np 2 3 # 创建矩阵 4 m1 = np.mat([[1, 2], [1, 2]]) 5 print("m1:\n", m1) 6 print("m1的类型:\n", type(m1)) 7 8 # 矩阵与数的相乘 9 m2 = 2 * m1 10 print("m2:\n", m2) 11 print("m2的类型:\n", type(m2)) 12 13 # 矩阵的相加,相减 ——>同型矩阵 14 m2 = np.mat([[0, 1], [0, 1]]) 15 print("m2:\n", m2) 16 print("m2的类型:\n", type(m2)) 17 18 res1 = m1 + m2 19 res2 = m1 - m2 20 print("相加/相减的结果:\n", res1, "\n", res2) 21 22 # 矩阵与矩阵的相乘 23 # 左矩阵的列 = 右矩阵的行 24 res = m1 * m2 25 res = np.matmul(m1, m2) 26 res = np.dot(m1, m2) 27 print("矩阵相乘的结果:\n", res) 28 29 # 矩阵与数组相乘,会自动将数组转化成矩阵再相乘 30 arr = np.array([[0, 1],[0, 1]]) 31 res = m1 * arr # 有可能在某些情况下报错,可以用,不推荐 32 res = np.matmul(m1, arr) 33 res = np.dot(m1, arr) 34 35 # 矩阵与列表相乘,会自动将列表转化成矩阵再相乘 36 li = [[0, 1], [0, 1]] 37 res = m1 * li # 有可能在某些情况下报错,可以用,不推荐 38 res = np.matmul(m1, li) 39 res = np.dot(m1, li) 40 41 print("相乘结果:\n", res) 42 43 # 如果在列表相乘的时候使用矩阵相乘的API,那么会先将列表转化为矩阵再相乘 44 l1 = [[1, 2], [1, 2]] 45 l2 = [[0, 1], [0, 1]] 46 # res = l1 * l2 # 不可以乘 47 res = np.matmul(l1, l2) 48 res = np.dot(l1, l2) 49 print("相乘结果:\n", res) 50 51 # 还有一种相乘方式——对应位置元素相乘——同型相乘 52 res = np.multiply(m1, m2) 53 print("矩阵的对应位置元素相乘:\n", res) 54 55 arr1 = np.array([[1, 2],[1, 2]]) 56 arr2 = np.array([[1, 2],[1, 2]]) 57 res = np.multiply(arr1, arr2) 58 print("数组的对应位置元素相乘:\n", res) 59 l1 = [[1, 2],[1, 2]] 60 l2 = [[1, 2],[1, 2]] 61 res = np.multiply(l1, l2) 62 print("列表的对应位置元素相乘:\n", res) 63 64 # 矩阵的属性 65 m1 = np.mat([[1, 2],[1, 2]]) 66 m1 = np.mat([[1, 2, 3], [1, 2, 4]]) 67 print("m1:\n", m1) 68 print("m1的类型:\n", type(m1)) 69 print("~"*60) 70 print("m1的转置:\n", m1.T) 71 print("m1的逆矩阵:\n", m1.I) # 矩阵必须有逆矩阵才能用 72 print("m1矩阵的共轭转置:\n", m1.H) 73 74 # 矩阵的视图就是数组 ——可以利用视图将矩阵转化为数组 75 print("m1矩阵的视图:\n", m1.A) 76 print("m1矩阵的视图的类型:\n",type(m1.A))