python矩阵的基本运算及各种操作
作者:木懿尓 发布时间:2023-01-12 11:37:27
标签: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])
来源:https://blog.csdn.net/m0_47017197/article/details/126299993


猜你喜欢
- 旋转椭圆实例代码:import matplotlib.pyplot as pltimport numpy as npfrom matplot
- _del_类的析构方法,它在对象被回收时执行,主要的作用时用来释放资源(内存 文件 进程等)因为Python内存回收机制,使得Python的
- 题目描述原题链接 :268. 丢失的数字给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0
- 前言今晚就是新年夜啦,为了 刷一波存在感 送出我的祝福,同时让它看起来不像群发消息,我们简单地用三步来实现定制QQ祝福~
- XMLHttpRequest的兼容代码功能结构上大体没有什么变动主要处理了这么几条:1.不同浏览器的创建方式2.事件大小写问题(ie7的XM
- 本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过。一、
- 本文主要给大家介绍了关于CentOS 6.5 安装Python 3.5.2并与Python2并存的相关内容,分享出来供大家参考学习,下面来看
- 在使用ASP来进行后端的数据合法性校验的时候,有些人为满足不同环境下面的数据校验,编写了很多的函数来实现,比如,我们想要校验用户输入的URL
- 介绍最近在项目中遇到插入数据瓶颈,几万、几十万、几百万的数据保存到MYSQL数据库,使用EF插入数据速度非常慢,数据量非常大时EF插入需要几
- 在开始安装SQL Server 2005数据库过程中,出现了下面的错误,安装不能继续进行:The SQL Server System Con
- 抢票脚本,python +splinter自动刷新抢票,可以成功抢到(依赖自己的网络环境太厉害,还有机器的好坏),但是感觉不是很完美。有大神
- 有了Selenium,还可以轻松操作Cookies,比如获取、添加、删除Cookies。具体代码如下:from selenium impor
- 简单低级的爬虫速度快,伪装度低,如果没有反爬机制,它们可以很快的抓取大量数据,甚至因为请求过多,造成服务器不能正常工作。而伪装度高的爬虫爬取
- 程序执行时需要读取两个文件command.txt和ipandpass.txt。格式如下:command.txt:ThreadNum:1por
- 制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放。选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音
- 字体的处理在网页设计中无论怎么强调也不为过,毕竟网页使用来传递信息的,而最经典最直接的信息传递方式就是文字,所以,了解一点字体的基本知识对于
- Python模块,简单说就是一个.py文件,其中可以包含我们需要的任意Python代码。迄今为止,我们所编写的所有程序都包含在单独的.py文
- range()是Python的内置函数,用于创建整数的列表,可以生成递增或者递减的数列。xrange也有相同的功能, 今天来看下它们之间的
- 前言具有名字的插槽slot使用 中的 "name" 属性绑定元素注意:1,如果没有匹配到 则放到匿名的插槽中2,具名插槽
- Django 提供了两种方式来执行原生 SQL 代码。一种是使用 raw() 函数,一种是 使用 connection.cursor()。但