Maison > Article > développement back-end > Exemple de partage de code pour les opérations courantes dans les matrices Python
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.开头。
2. .Création de matrices
Création de matrices à partir de données unidimensionnelles ou bidimensionnellesfrom numpy import *; a1=array([1,2,3]); a1=mat(a1);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的对角矩阵
3. Opérations matricielles courantes
1. 🎜>
a1=mat([1,2]); a2=mat([[1],[2]]); a3=a1*a2; #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
Multiplication des éléments correspondants de la matrice
Produit scalaire matriciel
a1=mat([1,1]); a2=mat([2,2]); a3=multiply(a1,a2);
a1=mat([2,2]); a2=a1*2;
Trouver la matrice l'inverse
Transposition matricielle
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;
Calculez la somme de chaque colonne et ligne
a1=mat([[1,1],[2,3],[4,2]]);
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,:]);//计算第一行所有列的和,这里得到的是一个数值
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,:]);//计算第二行中最大值对应在改行的索引
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:];//分割出第二行以后的行和第二列以后的列的所有元素
a=mat(ones((2,2))); b=mat(eye(2)); c=vstack((a,b));//按列合并,即增加行数 d=hstack((a,b));//按行合并,即行数不变,扩展列数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];
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;//元素的类型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();//将数组转换成列表
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]
<.>
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!