Maison > développement back-end > Tutoriel Python > Exemple de partage de code pour les opérations courantes dans les matrices Python

Exemple de partage de code pour les opérations courantes dans les matrices Python

黄舟
Libérer: 2017-10-03 05:46:48
original
1925 Les gens l'ont consulté

Cet article présente principalement les opérations courantes des matrices Python. Il résume et analyse la création de matrices Python et les méthodes de mise en œuvre de multiplication, d'inversion, de transposition et d'autres opérations associées sous forme d'exemples. 🎜>

Les exemples de cet article décrivent les opérations matricielles courantes en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

La bibliothèque numpy de Python fournit des opérations matricielles, donc lorsque nous avons besoin d'opérations matricielles, nous devons importer le package numpy.

1. Importation et utilisation de numpy


from numpy import *;#导入numpy的库函数
import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。
Copier après la connexion

2. .Création de matrices

Création de matrices à partir de données unidimensionnelles ou bidimensionnelles


from numpy import *;
a1=array([1,2,3]);
a1=mat(a1);
Copier après la connexion
Création de matrices communes


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的对角矩阵
Copier après la connexion

3. Opérations matricielles courantes

1. 🎜>


2. Multiplication de points matriciels
a1=mat([1,2]);
a2=mat([[1],[2]]);
a3=a1*a2;
#1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
Copier après la connexion

Multiplication des éléments correspondants de la matrice


Produit scalaire matriciel

a1=mat([1,1]);
a2=mat([2,2]);
a3=multiply(a1,a2);
Copier après la connexion


3. Inversion matricielle, transposer
a1=mat([2,2]);
a2=a1*2;
Copier après la connexion

Trouver la matrice l'inverse


Transposition matricielle

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


4. Calculez les lignes correspondantes et Colonnes de la matrice Le maximum, le minimum et la somme de .
a1=mat([[1,1],[0,0]]);
a2=a1.T;
Copier après la connexion


Calculez la somme de chaque colonne et ligne

a1=mat([[1,1],[2,3],[4,2]]);
Copier après la connexion


Calculez le maximum et valeurs minimales et indices

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


5 Séparation et fusion des matrices
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,:]);//计算第二行中最大值对应在改行的索引
Copier après la connexion

La séparation des matrices est la même. comme séparation des listes et des tableaux cohérents.


Fusion de matrices

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


a=mat(ones((2,2)));
b=mat(eye(2));
c=vstack((a,b));//按列合并,即增加行数
d=hstack((a,b));//按行合并,即行数不变,扩展列数
Copier après la connexion
4. Matrices, listes , Conversion de tableau

La liste peut être modifiée et les éléments de la liste peuvent être différents types de données, comme suit :


Tableaux dans numpy, tous les éléments d'un même tableau doivent être du même type, et avoir plusieurs attributs communs :

l1=[[1],'hello',3];
Copier après la connexion


La matrice dans numpy est également commun avec les tableaux à plusieurs propriétés.

a=array([[2],[1]]);
dimension=a.ndim;
m,n=a.shape;
number=a.size;//元素总个数
str=a.dtype;//元素的类型
Copier après la connexion
Conversion entre eux :


Ici, vous pouvez constater que la conversion entre les trois est très simple. Ce qu'il faut noter ici, c'est que. , Lorsque la liste est unidimensionnelle, la convertir en tableau ou en matrice puis la convertir en liste via tolist() est différente et nécessite quelques modifications mineures. Comme suit :

a1=[[1,2],[3,2],[5,2]];//列表
a2=array(a1);//将列表转换成二维数组
a3=array(a1);//将列表转化成矩阵
a4=array(a3);//将矩阵转换成数组
a5=a3.tolist();//将矩阵转换成列表
a6=a2.tolist();//将数组转换成列表
Copier après la connexion


La matrice est convertie en valeur numérique. Il existe une des situations suivantes :

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]
Copier après la connexion

<.>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal