python矩阵的基本运算及各种操作

 更新时间:2022年11月17日 15:54:02   作者:木懿尓  
python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包,下面这篇文章主要给大家介绍了关于python矩阵的基本运算及各种操作的相关资料,需要的朋友可以参考下

一、Python 矩阵基本运算

引入 numpy 库

import numpy as np

1. python矩阵操作

1)使用 mat 函数创建一个 2X3矩阵

a = np.mat([[1, 2, 3], [4, 5, 6]])

 2)使用 shape 可以获取矩阵的大小

a.shape

 3)进行行列转换

a.T

4)使用二维数组代替矩阵来进行矩阵运算

b = np.array([[1, 2, 3], [4, 5, 6]])

 5) 加减法

a + b
a - b

二、python矩阵乘法

1)使用二维数组创建两个矩阵A和B

A = np.array([[1, 2, 3], [4, 5, 6]])
B = A.T

2)一个矩阵的数乘,其实就是矩阵的每一个元素乘以该数

2 * A

 3)dot 函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积 

np.dot(A, B)

np.dot( B, A)

 4)再创建一个二维数组

C = np.array([[1, 2], [1, 3]])

5)验证矩阵乘法的结合性:( A B ) C = A ( B C ) (AB)C = A(BC)(AB)C=A(BC)

np.dot(np.dot(A, B), C)

np.dot(A, np.dot(B, C))

6)使用 eye 创建一个单位矩阵 

三、python矩阵转置

1)A的转置

A.T

四、python求方阵的迹

1)A的迹

五、python求逆矩阵/伴随矩阵

逆矩阵的定义:

设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。当矩阵A的行列式|A|不等于0时才存在可逆矩阵。  

1)创建一个方阵

A = np.array([[1, -2, 1], [0, 2, -1], [1, 1, -2]])

2)使用 linalg.det求得方阵的行列式

A_abs = np.linalg.det(A)

 3) 使用 linalg.inv 求得方阵A的逆矩阵

B = np.linalg.inv(A)

4)利用公式求伴随矩阵:

A_bansui = B * A_abs

 六、python方阵的行列式计算方法

1)创建两个方阵

E = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
F = np.array([[1, 2], [1, 3]])

2)使用 linalg.det 方法求得方阵E和方阵F的行列式

np.linalg.det(E)

np.linalg.det(F)

七、python解多元一次方程

x+2y+z=72

x−y+3z=73

x+y+2z=18

1) 将未知数的系数写下来,排列成一个矩阵a

a = [[1, 2, 1], [2, -1, 3], [3, 1, 2]]
a = np.array(a)

2)常数项构成一个一维数组(向量)

b = [7, 7, 18]
b = np.array(b)

3)使用 linalg.solve 方法解方程,参数a指的是系数矩阵,参数b指的是常数项矩阵

x = np.linalg.solve(a, b)

4)使用点乘的方法可以验证一下,系数乘以未知数可以得到常数项

np.dot(a, x)

附:矩阵的高级操作

M = Matrix([[1,3,4],[5,0,3],[3,5,7]])
print(M)
print("计算矩阵的行列式")
print(M.det())
print("化简矩阵,返回两个元素,第一个是矩阵,第二个是元组")
print(M.rref())
Matrix([[1, 3, 4], [5, 0, 3], [3, 5, 7]])
计算矩阵的行列式
7
化简矩阵
(Matrix([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]), [0, 1, 2])

总结

到此这篇关于python矩阵的基本运算及各种操作的文章就介绍到这了,更多相关python矩阵运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python版大富翁源代码分享

    python版大富翁源代码分享

    这篇文章主要为大家详细介绍了python版大富翁源代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Python中Tkinter组件Button的具体使用

    Python中Tkinter组件Button的具体使用

    Button=组件用于实现各种各样的按钮,本文主要介绍了Python中Tkinter组件Button的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2022-01-01
  • 详细解读tornado协程(coroutine)原理

    详细解读tornado协程(coroutine)原理

    这篇文章主要介绍了详细解读tornado协程(coroutine)原理,涉及协程定义,生成器和yield语义,Future对象,ioloop对象,函数装饰器coroutine等相关内容,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python中flatten( )函数及函数用法详解

    Python中flatten( )函数及函数用法详解

    flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组。这篇文章主要介绍了Python中flatten( )函数,需要的朋友可以参考下
    2018-11-11
  • 对比分析BN和dropout在预测和训练时区别

    对比分析BN和dropout在预测和训练时区别

    这篇文章主要为大家介绍了对比分析BN和dropout在预测和训练时区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 详解python时间模块中的datetime模块

    详解python时间模块中的datetime模块

    这篇文章主要为大家介绍了python时间模块中的datetime模块,datetime模块的接口则更直观、更容易调用,想要了解datetime模块的朋友可以参考一下
    2016-01-01
  • 利用pandas合并多个excel的方法示例

    利用pandas合并多个excel的方法示例

    这篇文章主要介绍了利用pandas合并多个excel的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python代码列表求并集,交集,差集

    Python代码列表求并集,交集,差集

    这篇文章主要介绍了Python代码列表求并集,交集,差集,下面文章讲详细的介绍如何利用python代码实现并集,交集,差集的相关资料展开内容,需要的朋友可以参考一下
    2021-11-11
  • 基于PyQt5制作一个PDF文件合并器

    基于PyQt5制作一个PDF文件合并器

    PDF文件合并工具是非常好用可以把多个pdf文件合并成一个,本文将利用Python中的PyQT5模块,制作一个简易的PDF文件合并器,感兴趣的可以了解一下
    2022-03-03
  • 使用Python合并PDF文件并添加自定义目录及页脚的全过程

    使用Python合并PDF文件并添加自定义目录及页脚的全过程

    在处理文档时,我们经常遇到需要合并多个PDF文件并添加目录及页脚的情况,本文将介绍如何使用Python,特别是PyPDF2和reportlab库来实现这一功能我们将通过一个实用的示例来演示整个过程,需要的朋友可以参考下
    2024-03-03

最新评论