This article mainly introduces the common operations of Python matrices. It summarizes and analyzes the creation of Python matrices and the implementation methods of multiplication, inversion, transposition and other related operations in the form of examples. Friends in need can refer to the following
The examples in this article describe common matrix operations in Python. Share it with everyone for your reference, the details are as follows:
Python's numpy library provides the function of matrix operations, so when we need matrix operations, we need to import the numpy package.
1. Import and use of numpy
from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。
2. Matrix Creation
Creating matrices from one-dimensional or two-dimensional data
from numpy import *; a1=array([1,2,3]); a1=mat(a1);
Creating common matrices
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的对角矩阵
3. Common matrix operations
##1. Matrix multiplication
a1=mat([1,2]); a2=mat([[1],[2]]); a3=a1*a2; #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
2. Matrix dot multiplication
Multiplication of corresponding elements of the matrixa1=mat([1,1]); a2=mat([2,2]); a3=multiply(a1,a2);
a1=mat([2,2]); a2=a1*2;
3.Matrix inversion, transpose
Matrix inversiona1=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. Calculate the maximum, minimum, and sum of the corresponding rows and columns of the matrix.
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,:]);//计算第二行中最大值对应在改行的索引
The separation of matrices is the same as the separation of lists and arrays.
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));//按行合并,即行数不变,扩展列数
4. Conversion of matrices, lists, and arrays The list can be modified, and the elements in the list can be different types of data, as follows:
l1=[[1],'hello',3];
a=array([[2],[1]]); dimension=a.ndim; m,n=a.shape; number=a.size;//元素总个数 str=a.dtype;//元素的类型
Conversion between them:
a1=[[1,2],[3,2],[5,2]];//列表 a2=array(a1);//将列表转换成二维数组 a3=array(a1);//将列表转化成矩阵 a4=array(a3);//将矩阵转换成数组 a5=a3.tolist();//将矩阵转换成列表 a6=a2.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];//这个时候获取的就是矩阵的元素的数值,而不再是矩阵的类型
The above is the detailed content of Sample code sharing for common operations in Python matrices. For more information, please follow other related articles on the PHP Chinese website!