Python计算矩阵的和积的实例详解


Posted in Python onSeptember 10, 2020

python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。

一、numpy的导入和使用

from numpy import *;#导入numpy的库函数
import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。

二、矩阵的创建

由一维或二维数据创建矩阵

from numpy import *;
a1=array([1,2,3]);
a1=mat(a1);

创建常见的矩阵

data1=mat(zeros((3,3)));
#创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3)
data2=mat(ones((2,4)));
#创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int
data3=mat(random.rand(2,2));
#这里的random模块使用的是numpy中的random模块,random.rand(2,2)创建的是一个二维数组,需要将其转换成#matrix
data4=mat(random.randint(10,size=(3,3)));
#生成一个3*3的0-10之间的随机整数矩阵,如果需要指定下界则可以多加一个参数
data5=mat(random.randint(2,8,size=(2,5));
#产生一个2-8之间的随机整数矩阵
data6=mat(eye(2,2,dtype=int));
#产生一个2*2的对角矩阵
 
a1=[1,2,3];
a2=mat(diag(a1));
#生成一个对角线为1、2、3的对角矩阵

三、常见的矩阵运算

1. 矩阵相乘

a1=mat([1,2]);  
a2=mat([[1],[2]]);
a3=a1*a2;
#1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵

2. 矩阵点乘

矩阵对应元素相乘

a1=mat([1,1]);
a2=mat([2,2]);
a3=multiply(a1,a2);

矩阵点乘

a1=mat([2,2]);
a2=a1*2;

3.矩阵求逆,转置

矩阵求逆

a1=mat(eye(2,2)*0.5);
a2=a1.I;
#求矩阵matrix([[0.5,0],[0,0.5]])的逆矩阵

矩阵转置

a1=mat([[1,1],[0,0]]);
a2=a1.T;

4.计算矩阵对应行列的最大、最小值、和。

a1=mat([[1,1],[2,3],[4,2]]);

计算每一列、行的和

a2=a1.sum(axis=0);//列和,这里得到的是1*2的矩阵
a3=a1.sum(axis=1);//行和,这里得到的是3*1的矩阵
a4=sum(a1[1,:]);//计算第一行所有列的和,这里得到的是一个数值

计算最大、最小值和索引

a1.max();//计算a1矩阵中所有元素的最大值,这里得到的结果是一个数值
a2=max(a1[:,1]);//计算第二列的最大值,这里得到的是一个1*1的矩阵
a1[1,:].max();//计算第二行的最大值,这里得到的是一个一个数值
 
np.max(a1,0);//计算所有列的最大值,这里使用的是numpy中的max函数
np.max(a1,1);//计算所有行的最大值,这里得到是一个矩阵
 
np.argmax(a1,0);//计算所有列的最大值对应在该列中的索引
np.argmax(a1[1,:]);//计算第二行中最大值对应在改行的索引

5.矩阵的分隔和合并

矩阵的分隔,同列表和数组的分隔一致。

a=mat(ones((3,3)));
b=a[1:,1:];//分割出第二行以后的行和第二列以后的列的所有元素

矩阵的合并

a=mat(ones((2,2)));
b=mat(eye(2));
c=vstack((a,b));//按列合并,即增加行数
d=hstack((a,b));//按行合并,即行数不变,扩展列数

四、矩阵、列表、数组的转换

列表可以修改,并且列表中元素可以使不同类型的数据,如下:

l1=[[1],'hello',3];

numpy中数组,同一个数组中所有元素必须为同一个类型,有几个常见的属性:

a=array([[2],[1]]);
dimension=a.ndim;
m,n=a.shape;
number=a.size;//元素总个数
str=a.dtype;//元素的类型

numpy中的矩阵也有与数组常见的几个属性。

它们之间的转换:

a1=[[1,2],[3,2],[5,2]];//列表
a2=array(a1);//将列表转换成二维数组
a3=array(a1);//将列表转化成矩阵
a4=array(a3);//将矩阵转换成数组
a5=a3.tolist();//将矩阵转换成列表
a6=a2.tolist();//将数组转换成列表

这里可以发现三者之间的转换是非常简单的,这里需要注意的是,当列表是一维的时候,将它转换成数组和矩阵后,再通过tolist()转换成列表是不相同的,需要做一些小小的修改。如下:

a1=[1,2,3];
a2=array(a1);
a3=mat(a1);
a4=a2.tolist();//这里得到的是[1,2,3]
a5=a3.tolist();//这里得到的是[[1,2,3]]
a6=(a4 == a5);//a6=False
a7=(a4 is a5[0]);//a7=True,a5[0]=[1,2,3]

矩阵转换成数值,存在以下一种情况:

dataMat=mat([1]);
val=dataMat[0,0];//这个时候获取的就是矩阵的元素的数值,而不再是矩阵的类型

到此这篇关于Python计算矩阵的和积的实例详解的文章就介绍到这了,更多相关Python怎么计算矩阵的和积内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python为tornado添加recaptcha验证码功能
Feb 26 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 Python
基于python实现获取网页图片过程解析
May 11 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
Python Numpy之linspace用法说明
Apr 17 Python
python如何运行js语句
Sep 09 #Python
python如何爬取动态网站
Sep 09 #Python
python如何停止递归
Sep 09 #Python
python能做哪些生活有趣的事情
Sep 09 #Python
Python 连接 MySQL 的几种方法
Sep 09 #Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 #Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 #Python
You might like
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
JSON格式化输出
2014/11/10 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
Python 文件管理实例详解
2015/11/10 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
跳槽求职信范文
2014/05/26 职场文书
个人职业及收入证明
2014/10/13 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers