Home  >  Article  >  Backend Development  >  Sample code sharing for common operations in Python matrices

Sample code sharing for common operations in Python matrices

黄舟
黄舟Original
2017-10-03 05:46:481866browse

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 matrix


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

Matrix point Multiply


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

3.Matrix inversion, transpose

Matrix inversion


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

Matrix transpose


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]]);

Calculate the sum of each column and row

##

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

Calculate the maximum, minimum value and index

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. Separation and merging of matrices

The separation of matrices is the same as the separation of lists and arrays.

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

Merging of matrices

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];

Arrays in numpy, the same as arrays in numpy All elements in an array must be of the same type, and have several common properties:

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

The matrix in numpy also has several properties common to arrays.

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();//将数组转换成列表

You can find that the conversion between the three is very simple. What needs to be noted here is that when the list When it is one-dimensional, it is different to convert it into an array or matrix and then convert it into a list through tolist(), which requires some minor modifications. As follows:

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]

When the matrix is ​​converted into a numerical value, there is one of the following situations:

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn