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实现获取序列中最小的几个元素
Sep 25 Python
Python基于pillow判断图片完整性的方法
Sep 18 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
python 容器总结整理
Apr 04 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 Python
Python实现壁纸下载与轮换
Oct 19 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 Python
pymysql模块使用简介与示例
Nov 17 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
用PHP函数解决SQL injection
2006/10/09 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
php轻松实现文件上传功能
2016/03/03 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
Python的Django框架中的数据库配置指南
2015/07/17 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
简单了解python中对象的取反运算符
2019/07/01 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
python爬取天气数据的实例详解
2020/11/20 Python
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
车辆年审委托书范本
2014/09/18 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
聊聊Python String型列表求最值的问题
2022/01/18 Python