Python做矩阵运算

对称矩阵的特征向量两两正交的证明 对称阵有一个很优美的性质:它总能相似对角化,对称阵不同特征值对应的特征向量两两正交。 假设矩阵AA是一个对称矩阵, xix_i和xjx_j 是矩阵AA 的任意两个特征向量,λi\lambda_i和λj\lambda_j 是与xix_i和xjx_j 相对应的特征值,则有: Axi=λixi(1)Ax_i = \lambda_ix_i \qqu 阅读详情
Python使用NumPy包完成了对N-维数组的快速便捷操作。使用这个包,需要导入numpy。SciPy包以NumPy包为基础,大大的扩展了numpy的能力。为了使用的方便,scipy包在最外层名字空间中包括了所有的numpy内容,因此只要导入了scipy,不必在单独导入numpy了!但是为了明确哪些是numpy中实现的,哪些是scipy中实现的,本文还是进行了区分。以下默认已经:import
numpy as np 以及 impor scipy as sp
下面简要介绍Python和MATLAB处理数学问题的几个不同点。1.MATLAB的基本是矩阵,而numpy的基本类型是多为数组,把matrix看做是array的子类。2.MATLAB的索引从1开始,而numpy从0开始。
1.建立矩阵
a1=np.array([1,2,3],dtype=int)  
#建立一个一维数组,数据类型是int。也可以不指定数据类型,使用默认。几乎所有的数组建立函数都可以指定数据类型,即dtype的取值。
a2=np.array([[1,2,3],[2,3,4]])  
#建立一个二维数组。此处和MATLAB的二维数组(矩阵)的建立有很大差别。
同样,numpy中也有很多内置的特殊矩阵:
b1=np.zeros((2,3))  
  #生成一个2行3列的全0矩阵。注意,参数是一个tuple:(2,3),所以有两个括号。完整的形式为:zeros(shape,dtype=)。相同的结构,有ones()建立全1矩阵。empty()建立一个空矩阵,使用内存中的随机值来填充这个矩阵。
b2=identity(n)    #建立n*n的单位阵,这只能是一个方阵。
b3=eye(N,M=None,k=0)  
  #建立一个对角线是1其余值为0的矩阵,用k指定对角线的位置。M默认None。
此外,numpy中还提供了几个like函数,即按照某一个已知的数组的规模(几行几列)建立同样规模的特殊数组。这样的函数有zeros_like()、empty_like()、ones_like(),它们的参数均为如此形式:zeros_like(a,dtype=),其中,a是一个已知的数组。
c1=np.arange(2,3,0.1)  
#起点,终点,步长值。含起点值,不含终点值。
c2=np.linspace(1,4,10)  
  #起点,终点,区间内点数。起点终点均包括在内。同理,有logspace()函数
d1=np.linalg.companion(a)  
  #伴随矩阵
d2=np.linalg.triu()/tril()  
#作用同MATLAB中的同名函数
e1=np.random.rand(3,2)  
  #产生一个3行2列的随机数组。同一空间下,有randn()/randint()等多个随机函数
fliplr()/flipud()/rot90()  
  #功能类似MATLAB同名函数。
xx=np.roll(x,2)  
#roll()是循环移位函数。此调用表示向右循环移动2位。
2.数组的特征信息
先假设已经存在一个N维数组X了,那么可以得到X的一些属性,这些属性可以在输入X和一个.之后,按tab键查看提示。这里明显看到了Python面向对象的特征。
X.flags      #数组的存储情况信息。
X.shape  
  #结果是一个tuple,返回本数组的行数、列数、……
X.ndim    #数组的维数,结果是一个数
X.size      #数组中元素的数量
X.itemsize  
  #数组中的数据项的所占内存空间大小
X.dtype      #数据类型
X.T    #如果X是矩阵,发挥的是X的转置矩阵
X.trace()      #计算X的迹
np.linalg.det(a)    #返回的是矩阵a的行列式
np.linalg.norm(a,ord=None)  
  #计算矩阵a的范数
np.linalg.eig(a)  
  #矩阵a的特征值和特征向量
np.linalg.cond(a,p=None)  
  #矩阵a的条件数
np.linalg.inv(a)  
  #矩阵a的逆矩阵
3.矩阵分解
常见的矩阵分解函数,numpy.linalg均已经提供。比如cholesky()/qr()/svd()/lu()/schur()等。某些 算法为了方便计算或者针对不同的特殊情况,还给出了多种调用形式,以便得到最佳结果。
4.矩阵运算
np.dot(a,b)用来计算数组的点积;vdot(a,b)专门计算矢量的点积,和dot()的区别在于对complex数据类型的处理不一样;innner(a,b)用来计算内积;outer(a,b)计算外积。
专门处理矩阵的数学函数在numpy的子包linalg中定义。比如np.linalg.logm(A)计算矩阵A的对数。可见,这个处理和MATLAB是类似的,使用一个m后缀表示是矩阵的运算。在这个空间内可以使用的有cosm()/sinm()/signm()/sqrtm()等。其中常规exp()对应有三种矩阵形式:expm()使用Pade近似算法、expm2()使用特征值分析算法、expm3()使用泰勒级数算法。在numpy中,也有一个计算矩阵的函数:funm(A,func)。
5.索引
numpy中的数组索引形式和Python是一致的。如:
x=np.arange(10)
print x[2]  
  #单个元素,从前往后正向索引。注意下标是从0开始的。
print x[-2]  
  #从后往前索引。最后一个元素的下标是-1
print x[2:5]  
  #多个元素,左闭右开,默认步长值是1
print x[:-7]  
  #多个元素,从后向前,制定了结束的位置,使用默认步长值
print x[1:7:2]    #指定步长值
x.shape=(2,5)  
  #x的shape属性被重新赋值,要求就是元素个数不变。2*5=10
print x[1,3]  
  #二维数组索引单个元素,第2行第4列的那个元素
print x[0]    #第一行所有的元素
y=np.arange(35).reshape(5,7)  
  #reshape()函数用于改变数组的维度
print y[1:5:2,::2]  
  #选择二维数组中的某些符合条件的元素
python矩阵的基本运算 文章目录一、python矩阵操作二、python矩阵乘法三、python矩阵转置四、python求方阵的迹五、python方阵的行列式计算方法六、python求逆矩阵/伴随矩阵七、 python解多元一次方程用python的 一、python矩阵操作 先引入numpy,以后的教程中,我们都引用为np作为简写 使用mat函数创建一个2X3矩阵 使用shape获取矩阵大小 使用下标读取矩阵中的元素 进行行业转换 通常情况下,使用二维数组代替矩阵来进行矩阵运算,可见矩阵和数组基本上都可以 加减法. 阅读详情

相关推荐

python中关于矩阵的运算

最近在用python写程序的时候,总是遇到矩阵就犯懵,于是总结了一下!不定期更新 首先,python中要进行数据的运算,需要插入运算库numpy import numpy as np 1、创建矩阵 比如定义一个三行三列的矩阵,可以用matrix或者array,但是感觉matrix更保险 a1 = np.matrix([ [1,2,3],[3,4,5],[5,6,7] ]) a2 = np.arra...

qq_34579844的博客 1861

python矩阵运算

第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装Matlab那么大的软件,而你又只是想计算些矩阵,python绝对够用!尤其在Linux下太方便了 转自:http://blog.sina.com.cn/s/blog_5f234d4701012p64.html Python使用NumPy包完成了对N-维数组的快速便捷操作。使用这个包,需要

ylf13的专栏 2452

PSpice 导入 LTspice 仿真实验 --(如何解决PSpice模型无法使用的错误)

参考了网上第三方器件导入LTspice的博客和资料,不论是哪个公司下载的SPICE模型导入LTspice的方法都类似。如果遇到导入报错的情况可以先看一下报错提示,如果通过语法修改实现功能的则说明可以进行仿真,当然性能可能与官方给的模型存在一点出入,但做一个基本的功能验证本人认为还是可以的,总比做出板子用不了或者完全不匹配的要好一些。

伊丽莎白的学习之路 8997

如何批量生成矩阵25码

  矩阵25码是我国邮政快件和挂号信函上面使用的一种条形码。它是一种“段等距码”,每段由三根黑条二根空间组成五元素等距码,其中窄的条或空表示“1”、宽的条或空表示“0”。挂号信上的条形码,共有黑条37条左端两根窄条是起始字符,右端一根宽条和一根窄条是终止字符。下面我们就看看如何批量生成矩阵25码。   在条码软件中新建一个空白标签,标签的尺寸根据自己的需要进行设置,如需打印就要和打印机里的标签纸的尺寸保持一致。因为我们是批量生成矩阵25码,所以先要导入数据库,点击软件上方的“设置数据源”按钮,在弹出的界面

sqxskj的博客 757

【IC设计实战】去耦电容decap在电源完整性中的关键作用与选型策略

本文深入探讨了去耦电容(decap)在IC设计电源完整性中的核心作用。文章分析了decap如何通过提供本地电荷缓冲来抑制电源噪声与电压波动,并详细阐述了其选型与布局策略,包括MIM、MOM、MOS电容的特性对比,以及如何权衡峰值抑制与建立速度的矛盾,为设计稳定可靠的芯片电源系统提供实践指导。

weixin_29233857的博客 247

避坑指南:RK3568双网口RMII模式DTS配置常见错误与调试技巧

本文详细解析了RK3568双网口RMII模式DTS配置中的常见错误与调试技巧,涵盖时钟配置、PHY识别、复位时序等关键问题。通过实战案例和系统化调试方法,帮助开发者快速解决百兆以太网连接不稳定、PHY识别失败等典型问题,提升开发效率。

weixin_42549037的博客 343

数值分析课程实验-矩阵条件数计算-python+numpy实现

原题见高等教育出版社2011版《数值计算方法》(丁丽娟、程杞元编著)p61. 3.(2). 与精密解比较可得,随着n的增加,线性方程组的解与精密解的差值越来越大。都是病态矩阵,且随着n的增大,矩阵的2-条件数增加,越来越病态。(1). n取5、10、20时两个系数矩阵的条件数分别为。(3). 增加微小扰动时,方程组解的变化较大。python代码实现如下。

ian 's ego and its own 1506

Blender关于GIS安装及使用天地图

Blender下载安装及GIS插件的安装及使用

Miss_SQ的博客 6969

Python math.expm1() 方法

Python math模块中定义了一些数学函数。由于这个模块属于编译系统自带,因此它可以被无条件调用。该模块还提供了与用标准C定义的数学函数的接口。本文主要介绍Python math.expm1() 方法的使用,以及相关示例代码。 原文地址:Python math.expm1() 方法 ...

亮亮的专栏 338

基于拟蒙特卡洛模拟法的随机潮流计算matlab程序

由式(4-11)可知,蒙特卡洛模拟法的计算量不受电力系统规模大小影响,因此该方法在一些复杂的电力系统中可以得到应用,包括处理电力系统中有多个间歇性新能源接入的问题,解决系统中多个节点之间相关性问题等等。本章在此基础上提出了基于拟蒙特卡洛模拟的随机潮流计算方法,并且对拟蒙特卡洛法中的拟随机数序列进行了改进,大大提高了随机潮流的计算效率。模拟法的具体思路如下:基于实际工程问题的求解需要,建立与之相对应的随机模拟过程和随机概率模型,使得它们的参数,包括概率分布或者数学期望,能够等于问题的实际解;

weixin_47365903的博客 1792

数据结构之栈(Stack)的实现详解

堆栈是一种线性数据结构,其插入新元素和删除现有元素都发生在堆栈的顶部。栈(Stack)按照"后进先出"(Last-In-First-Out,LIFO)的原则存储和访问数据。栈类似于现实生活中的堆叠物体,比如一摞书或者一堆盘子。

swadian2008的博客 3812

Python矩阵运算

若主元为或绝对值很小,就需要在该列中寻找绝对值较大的元素所在行,通过构建置换矩阵来交换行,以确保主元非零且尽可能大,提高分解的稳定性和准确性。即所用坐标法进行矩阵元素的索引,矩阵的索引从0开始,可以使用行、列的索引来访问特定元素。SVD 是将矩阵分解为三个矩阵:左奇异矩阵、对角矩阵(奇异值)、右奇异矩阵。通过指定多个索引来访问矩阵中的特定元素。布尔索引允许通过条件筛选矩阵中的元素,返回满足条件的元素。LU 分解将矩阵分解为一个下三角矩阵和一个上三角矩阵。QR 分解将矩阵分解为正交矩阵和上三角矩阵。

一个专注于机器学习基础与实战的技术博客,内容涵盖算法推导、模型实现、数学原理与代码实践。用通俗的语言解析复杂概念,记录学习过程中的思考与总结,适合机器学习爱好者和从业者参考。 2197

YOLO26涨点改进 | 损失函数改进篇 | 引入SlideLoss,适配尺度变化+遮挡+难易样本不平衡,手把手配置+实战案例

COCO-Hard是COCO数据集的复杂场景子集,包含80个类别,重点筛选多尺度、遮挡密集样本,其中小尺度目标(<32×32像素)占比42%,大尺度目标(>128×128像素)占比28%,遮挡目标占比57%,场景涵盖人群密集、车流拥堵、复杂工业环境,完美模拟真实复杂检测场景,适合验证SlideLoss的适配性。

qq_36130719的博客 157

python中的矩阵运算

转自:https://www.cnblogs.com/chamie/p/4870078.html python中的矩阵运算 摘自:http://m.blog.youkuaiyun.com/blog/taxueguilai1992/46581861 python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。 1.numpy的导入和使用 from numpy ...

iqiqiya的博客 3万+

华为OD机试2025A卷 - BOSS的收入(Java & Python& JS & C++ & C )

华为OD机试2025A卷 - BOSS的收入(Jav一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级。现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。输入:分销关系和收入:[[分销id 上级分销id 收入], [分销id 上级分销id 收入], [分销id 上级分销id 收入]]输出:[boss的ID, 总收入]

算法大师! 1171

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python矩阵运算算法_python 矩阵运算

本文转自:http://blog.sina.com.cn/s/blog_5f234d4701012p64.html科学计算:Python VS. MATLAB(3)----线性代数基础按:在介绍工具之前先对理论基础进行必要的回顾是很必要的。没有理论的基础,讲再多的应用都是空中楼阁。本文主要设涉及线性代数和矩阵论的基本内容。先回顾这部分理论基础,然后给出MATLAB,继而给出Python的处理。个人...

weixin_34109083的博客 2491

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python:矩阵的基本运算

python矩阵的基本运算

m0_47017197的博客 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python的常见矩阵运算

python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。1.numpy的导入和使用from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。2.矩阵的创建由一维或二维数据创建矩阵from numpy import *; a1=array([1,2,3]);

lanyizheng blog 25万+

Python—numpy做矩阵运算

Python知识(6)--numpy做矩阵运算 矩阵运算 论numpy中matrix 和 array的区别:http://blog.youkuaiyun.com/vincentlipan/article/details/20717163 matrix 和 array的差别: Numpy matrices必须是2维的,但是 numpy arrays (ndarrays)

Olivaf的博客 4852

Python 矩阵基本运算【numpy】

文章目录一、实验说明二、Python 矩阵基本运算1. python矩阵操作2. python矩阵乘法3. python矩阵转置4. python求方阵的迹5. python方阵的行列式计算方法6. python求逆矩阵/伴随矩阵7. python解多元一次方程 一、实验说明 实验环境 Anaconda + python3.6 + jupyter 二、Python 矩阵基本运算 引入 numpy 库 import numpy as np 1. python矩阵操作 ① 使用 mat 函数创建一个 2X

xwmrcj的博客 10万+

python 矩阵_python的矩阵运算

1.jpgpython自身不支持矩阵运算,一般想要在python进行矩阵运算:一个方法是自己用二维列表定义矩阵,然后自己写矩阵基本运算的函数,这个方法有点事倍功半的意思,所以一般不采用。第二个方法是使用numpy库。NumPy是用Python进行科学计算的基础软件包。它包含以下内容:一个强大的N维数组对象复杂的(广播)功能用于集成C / C ++和Fortran代码的工具有用的线性代数,傅里叶变换...

weixin_39687301的博客 822

python进行矩阵运算

本文主要介绍了python中如何进行矩阵运算,包括矩阵相乘、矩阵求逆、矩阵特征值求解、矩阵约当标准型求解、矩阵奇异值分解及线性方程组求解,并给出了相应的实现代码。

weixin_46846685的博客 1325

python中常见的矩阵运算

转自:https://www.cnblogs.com/chamie/p/4870078.html python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。 2...

晓杰1990的博客 2万+

python未知数的矩阵运算_python如何进行矩阵运算

python进行矩阵运算的方法:1、矩阵相乘>>>a1=mat([1,2]);>>>a2=mat([[1],[2]]);>>>a3=a1*a2 #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵>>> a3matrix([[5]])2、矩阵对应元素相乘>>>a1=mat([1,1]);>>>a...

weixin_35391232的博客 2751

python求解矩阵_python矩阵运算

第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装Matlab那么大的软件,而你又只是想计算些矩阵,python绝对够用!尤其在Linux下太方便了Python使用NumPy包完成了对N-维数组的快速便捷操作。使用这个包,需要导入numpy。SciPy包以NumPy包为基础,大大的扩展了numpy的能力。为了使用的方便,scipy包在最外层...

weixin_39871562的博客 1735
上一篇: 关于CSV文件导入到数据的方法以及遇到的问题和解决方案
下一篇: php中使用exec,system等函数调用系统命令
云金
博客等级 码龄11年 11粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值