矩阵是二维的
先将模块导入文件中
import numpy as np
1、将字符串转化为矩阵
m1 = np.mat("1 2 3;4 5 6;7 8 9") m1 = np.asmatrix("1 2 3;4 5 6;7 8 9")
使用mat()方法创建矩阵,asmatrix()等同于mat()
2、将列表嵌套转化为矩阵
m1 = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) m1 = np.mat([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]) # 不可以的,不可以将嵌套两层的列表转化为矩阵
无法将超过两层嵌套的列表转化为矩阵
3、将数组转化为矩阵
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
m1 = np.mat(arr)
可将二维数组转化为矩阵
arr = np.array([[[[1, 2, 3], [4, 5, 6], [7, 8, 9]]]])
m1 = np.mat(arr)
只含有一个二维数组的四维数组,可以转化为矩阵;只要是数组,且内部真实的值是二维的,就可以转化为矩阵
arr = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[1, 2, 3], [4, 5, 6], [7, 8, 9]]])
错误,这个数组无法转化为矩阵
4、matrix()方法
mat()方法和matrix()方法的作用和用法类似,都是用于创建数组
两者的差别为:
b=np.mat(a)
如果a本身就是矩阵,那么上面的代码是创建矩阵a的一个引用,相当于:
np.matrix(a,copy=False)
无论a和b哪一个发生改变,都会影响矩阵本身
如果a不是矩阵,那么b就是a转化为矩阵的结果,是在原有的基础上进行copy()
np.matrix()
copy属性默认为True,单纯的是创建一个矩阵
5、组合矩阵
l1 = [[1, 2], [2, 1]] l2 = [[0, 1], [0, 1]] arr1 = np.array(l1) arr2 = np.array(l2)
先创建两个数组
m2 = np.bmat("arr1 arr2;arr2 arr1") m2 = np.bmat("l1 l2;l2 l1") m2 = np.bmat([[arr1, arr2], [arr2, arr1]]) m2 = np.bmat([[l1, l2], [l2, l1]])
使用bmat()方法,可以将数组的字符串、列表的字符串、数组的列表和列表嵌套的形式转化为矩阵