1 import numpy as np 2 3 # 矩阵是二维的 4 # 使用mat == asmatrix 来创建矩阵 5 # 6 # # 使用mat 将字符串转化为矩阵 7 m1 = np.mat("1 2 3;4 5 6;7 8 9") 8 # np.asmatrix() 等同于 np.mat() 9 10 # 使用mat 将列表嵌套转化为矩阵 11 m1 = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 12 # m1 = np.mat([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) # 不可以的,不可以将嵌套两层的列表转化为矩阵 13 14 # 使用mat 将数组转化为矩阵 15 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 16 # 只要是数组,内部真实的值是二维的,那么就可以转化为矩阵 17 arr = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) # 只有含有一个二维数组的三维数组,可以转化为矩阵 18 # arr = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) # 不可以的 19 arr = np.array([[[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]]) # 只有含有一个二维数组的四维数组,可以转化为矩阵 20 m1 = np.mat(arr) 21 print("m1: ", m1) 22 print("m1的类型: ", type(m1)) 23 24 # 使用matrix 来创建矩阵 25 # 可以使用matrix 将字符串、列表嵌套、二维数组转化矩阵 26 # 只要是数组,内部真实的值是二维的,那么就可以转化为矩阵 27 m1 = np.matrix("1 2 3;4 5 6;7 8 9") 28 m1 = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 29 # m1 = np.matrix([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) # 不可以的 30 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 31 arr = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) 32 arr = np.array([[[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]]) 33 m1 = np.matrix(arr) 34 print("m1: ", m1) 35 print("m1的类型: ", type(m1)) 36 # 直接创建矩阵 可以使用mat asmatrix matrix 37 # mat 和 asmatrix 一样的 38 # 比 matrix 少了一个copy 39 # 推荐使用mat 或者asmatrix 40 41 42 # 使用bmat 来组合矩阵 43 l1 = [[1, 2], [2, 1]] 44 l2 = [[0, 1], [0, 1]] 45 arr1 = np.array(l1) 46 arr2 = np.array(l2) 47 print("arr1: ", arr1) 48 print("arr2: ", arr2) 49 50 # 使用bmat ---可以数组的字符串 或者列表的字符串转化组合矩阵 51 m2 = np.bmat("arr1 arr2;arr2 arr1") 52 m2 = np.bmat("l1 l2;l2 l1") 53 # 使用bmat 可以将数组的列表,或者列表嵌套的形式转化组合矩阵 54 m2 = np.bmat([[arr1, arr2], [arr2, arr1]]) 55 m2 = np.bmat([[l1, l2], [l2, l1]]) 56 57 # # arr = np.array(arr1, arr2) # 不可以 58 print("~" * 60) 59 arr = np.array([[arr1, arr2], [arr2, arr1]]) 60 print(arr) 61 print(arr.ndim) 62 # print(arr.shape) 63 print("~" * 60) 64 65 # m2 = np.bmat(arr) 66 print("m2: ", m2) 67 print("m2的类型: ", type(m2))