Python处理矩阵,python 计算矩阵

Python处理矩阵,python 计算矩阵,python的常见矩阵运算(小结)

本文主要介绍python常用的矩阵运算(总结),通过示例代码介绍的非常详细,对大家的学习或工作有一定的参考价值。有需要的朋友下面跟边肖学习。

Python的numpy库提供了矩阵运算的功能,所以当我们需要矩阵运算的时候,就需要导入numpy的包。

1.numpy的导入和使用

从numpy导入*;#导入numpy的库函数

将numpy作为np导入;#这样使用numpy的函数时,需要从np开始.

2.矩阵的创建

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

从numpy导入*;

a1=数组([1,2,3]);

a1=mat(a1);

创建一个通用矩阵

data1=mat(零((3,3)));

#创建一个3*3零矩阵,其中零函数的自变量是元组类型(3,3)

data2=mat(ones((2,4)));

#创建一个2 * 4 ^ 1的矩阵,默认为浮点数据。如果需要int类型,可以使用dtype=int。

data3=mat(random.rand(2,2));

#这里的随机模块使用numpy中的随机模块。random.rand(2,2)创建一个二维数组,需要转换成#matrix。

data4=mat(random.randint(10,size=(3,3)));

#生成一个0到10之间的3*3随机整数矩阵。如果需要指定下限,可以添加一个附加参数。

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的对角矩阵

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=乘法(a1,a2);

矩阵乘法

a1=mat([2,2]);

a2=a1 * 2;

3.矩阵求逆和转置

矩阵求逆

a1=mat(eye(2,2)* 0.5);

a2=a1。我;

#求矩阵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(轴=0);//列和,这里我们得到的是一个1*2的矩阵

a3=a1.sum(轴=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(眼(2));

c=vstack((a,b));//按列合并,即增加行数

d=hstack((a,b));//按行合并,即行数不变,列数扩大。

4.矩阵、列表、数组的转换

列表可以修改,列表中的元素可以生成不同类型的数据,如下所示:

l1=[[1],'你好',3];

numpy中的数组(其中同一数组中的所有元素必须是同一类型)有几个公共属性:

a=数组([[2],[1]]);

dimension=a . ndim;

m,n=a.shape

number=a . size;//元素总数

str=a.dtype//元素的类型

numpy中的矩阵也有几个数组共有的属性。

它们之间的转换:

a1=[[1,2],[3,2],[5,2]];//列表

a2=数组(a1);//将列表转换为二维数组

a3=数组(a1);//将列表转换成矩阵

a4=数组(a3);//将矩阵转换成数组

a5=a3 . to list();//将矩阵转换成列表

a6=a2 . to list();//将数组转换为列表

这里可以发现,三者之间的转换非常简单。这里需要注意的是,当列表是一维的时候,先转换成数组和矩阵是不一样的,然后用tolist()转换成列表,需要做一些小的修改。如下所示:

a1=[1,2,3];

a2=数组(a1);

a3=mat(a1);

a4=a2 . to list();//这里得到的是[1,2,3]

a5=a3 . to list();//这里得到的是[[1,2,3]]

a6=(a4==a5);//a6=假

a7=(a4是a5[0]);//a7=True,a5[0]=[1,2,3]

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

dataMat=mat([1]);

val=dataMat[0,0];//此时得到的是矩阵元素的值,而不是矩阵的类型。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: