numpy:矩阵的创建

  矩阵是二维的

  先将模块导入文件中

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)

  无论ab哪一个发生改变,都会影响矩阵本身

扫描二维码关注公众号,回复: 7817587 查看本文章

  如果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()方法,可以将数组的字符串、列表的字符串、数组的列表和列表嵌套的形式转化为矩阵

猜你喜欢

转载自www.cnblogs.com/xmcwm/p/11833608.html