python求矩阵的秩_Python--线性代数篇

讲解Python在线性代数中的应用,包括:一、矩阵创建先导入Numpy模块,在下文中均采用np代替numpy1 import numpy as np矩阵创建有两种方法,一是使用np.mat函数或者np.matrix函数,二是使用数组代替矩阵,实际上官方文档建议我们使用二维数组代替矩阵来进行矩阵运算;因为二维数组用得较多,而且基本可取代矩阵。1 >>> a = np.mat([[1...
摘要由CSDN通过智能技术生成

讲解Python在线性代数中的应用,包括:

一、矩阵创建

先导入Numpy模块,在下文中均采用np代替numpy

1 import numpy as np

矩阵创建有两种方法,一是使用np.mat函数或者np.matrix函数,二是使用数组代替矩阵,实际上官方文档建议我们使用二维数组代替矩阵来进行矩阵运算;因为二维数组用得较多,而且基本可取代矩阵。

1 >>> a = np.mat([[1, 2, 3], [4, 5, 6]]) #使用mat函数创建一个2X3矩阵

2 >>>a3 matrix([[1, 2, 3],4 [4, 5, 6]])5 >>> b = np.matrix([[1, 2, 3], [4, 5, 6]])#np.mat和np.matrix等价

6 >>>b7 matrix([[1, 2, 3],8 [4, 5, 6]])9 >>> a.shape #使用shape属性可以获取矩阵的大小

10 (2, 3)

1 >>> c = np.array([[1, 2, 3], [4, 5, 6]]) #使用二维数组代替矩阵,常见的操作通用

2 >>> c#注意c是array类型,而a是matrix类型

3 array([[1, 2, 3],4 [4, 5, 6]])

单位阵的创建

1 >>> I = np.eye(3)2 >>>I3 array([[ 1., 0., 0.],4 [ 0., 1., 0.],5 [ 0., 0., 1.]])

矩阵元素的存取操作:

1 >>> a[0]#获取矩阵的某一行

2 matrix([[1, 2, 3]])3 >>> a[:, 0].reshape(-1, 1)#获取矩阵的某一列

4 matrix([[1],5 [4]])6 >>> a[0, 1]#获取矩阵某个元素

7 2

二、矩阵乘法和加法

矩阵类型,在满足乘法规则的条件下可以直接相乘

1 >>> A = np.mat([[1, 2, 3], [3, 4, 5], [6, 7, 8]])#使用mat函数

2 >>> B = np.mat([[5, 4, 2], [1, 7, 9], [0, 4, 5]])3 >>> A #注意A, B都是matrix类型,可以使用乘号,如果是array则不可以直接使用乘号

4 matrix([[1, 2, 3],5 [3, 4, 5],6 [6, 7, 8]])7 >>>B8 matrix([[5, 4, 2],9 [1, 7, 9],10 [0, 4, 5]])11 >>> A * B#学过线性代数的都知道:A * B != B * A

12 matrix([[ 7, 30, 35],13 [ 19, 60, 67],14 [ 37, 105, 115]])15 >>> B *A16 matrix([[ 29, 40, 51],17 [ 76, 93, 110],18 [ 42, 51, 60]])

如果是使用数组代替矩阵进行运算则不可以直接使用乘号,应使用dot()函数。dot函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积。

1 >>> C = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])2 >>> D = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])3 >>> C #C, D都是array类型,不能直接使用乘号,应该使用dot()函数

4 array([[1, 2, 3],5 [3, 4, 5],6 [6, 7, 8]])7 >>>D8 array([[5, 4, 2],9 [1, 7, 9],10 [0, 4, 5]])11 #>>> C * D, Error, 注意这不是矩阵乘法!!!

12 >>> np.dot(C, D)#正确的写法&#x

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值