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写的ARP攻击代码实例
Jun 04 Python
python获取远程图片大小和尺寸的方法
Mar 26 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
python中常见错误及解决方法
Jun 21 Python
Python如何给函数库增加日志功能
Aug 04 Python
python制作图形界面的2048游戏, 基于tkinter
Apr 06 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
PHP学习笔记之session
2018/05/06 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python图像处理之反色实现方法
2015/05/30 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
辞职信标准格式
2015/02/27 职场文书