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:\n", m1)
22 print("m1的类型:\n", 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:\n", m1)
35 print("m1的类型:\n", 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:\n", arr1)
48 print("arr2:\n", 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:\n", m2)
67 print("m2的类型:\n", type(m2))