logo

Python Matrix

En aquest tutorial, aprendrem sobre les matrius de Python. A Python, un objecte matriu és similar a les llistes imbricades ja que són multidimensionals. Veurem com crear una matriu utilitzant matrius Numpy. Després d'això, veurem diversos mètodes d'operacions matricials i exemples per a una millor comprensió.

Què és una matriu en Python?

Una matriu en Python és una matriu Numpy rectangular. Aquesta matriu ha de ser bidimensional. Conté dades emmagatzemades a les files i columnes de la matriu. En una matriu de Python, les sèries horitzontals d'elements s'anomenen 'files', mentre que les sèries verticals d'elements s'anomenen 'columnes'. Les files i columnes s'apilen una sobre l'altra igual que una llista imbricada. Si una matriu conté r nombre de files i c nombre de columnes, on r i c són nombres enters positius, aleshores r x c determina l'ordre d'aquest objecte matriu.

Podem emmagatzemar cadenes, nombres enters i objectes d'altres tipus de dades en una matriu. Les dades s'emmagatzemen a les piles de files i columnes d'una matriu. La matriu és una estructura de dades crucial per als càlculs en matemàtiques i ciències. A Python, considerem una llista de llistes o una llista imbricada com una matriu, ja que Python no inclou cap tipus integrat per a un objecte matriu.

ordres de Linux

En el transcurs d'aquest tutorial, passarem per la següent llista de mètodes d'operació matricial.

  • Addició de matrius
  • Multiplicació matricial
  • Operador de multiplicació de matrius
  • Multiplicació de matrius sense Numpy
  • Matriu inversa
  • Transposició de matrius
  • Matriu a matriu

Com funcionen les matrius a Python?

Escrivim dades en una matriu bidimensional per crear una matriu. Es fa de la següent manera:

Exemple

 [ 2 3 5 7 6 3 2 6 7 2 5 7 2 6 1 ] 

Mostra una matriu amb 3 files i 5 columnes, de manera que la seva dimensió és 3×5. Els objectes de tipus de dades enters formen les dades d'aquesta matriu. La fila 1, la primera fila, té valors (2, 3, 5, 7, 6), mentre que la fila 2 té valors (3, 2, 6, 7, 2) i la fila 3 té valors 5, 7, 2, 6, 1. Pel que fa a columnes, la Columna1 té valors (2, 3, 5), la Columna2 té valors (3, 2, 7), etc.

Exemple

 [ 0, 0, 1 0, 1, 0 1, 0, 0 ] 

Mostra una matriu amb 3 files i 3 columnes, de manera que la seva dimensió és 3×3. Aquestes matrius que tenen files i columnes iguals s'anomenen matrius quadrades.

De la mateixa manera, Python permet als usuaris emmagatzemar les seves dades dins d'una matriu dimensional m x n. Podem realitzar l'addició de matrius, la multiplicació, la transposició i altres operacions en una estructura similar a una matriu.

La implementació d'un objecte matricial a Python no és senzilla. Podem crear una matriu de Python utilitzant matrius i utilitzar-les de manera similar.

Matriu NumPy

El programari de computació científica NumPy admet un objecte de matriu N-dimensional robust. La instal·lació de NumPy és un requisit previ per utilitzar-lo al nostre programa.

classificació de galleda

NumPy es pot utilitzar i importar després de la instal·lació. Conèixer els conceptes bàsics de Numpy Array serà útil per entendre les matrius.

NumPy proporciona matrius amb diverses dimensions d'elements. Aquí teniu una il·lustració:

Codi

 # Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating a numpy array array = np.array([4, 6, 'Harry']) print(array) print('Data type of array object: ', type(array)) 

Sortida:

 ['4' '6' 'Harry'] Data type of array object: 

Com podem veure, les matrius Numpy pertanyen a la classe ndarray.

Exemple per crear una matriu amb Numpy Array

Penseu en l'escenari en què creem un registre de les notes dels alumnes. Enregistrarem el nom i les notes de l'alumne en dues assignatures, Programació Python i Matrix. Crearem una matriu bidimensional utilitzant una matriu numpy i després la remodelarem.

Codi

 # Python program to create a matrix using numpy array # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) print('The matrix is: 
', matrix) 

Sortida:

 The matrix is: [['Itika' '89' '91'] ['Aditi' '96' '82'] ['Harry' '91' '81'] ['Andrew' '87' '91'] ['Peter' '72' '79']] 

Exemple per crear una matriu amb el mètode Numpy Matrix

Podem utilitzar el numpy.matrix per crear una matriu 2D.

Codi

 # Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating a matrix matrix = np.matrix('3,4;5,6') print(matrix) 

Sortida:

 [[3 4] [5 6]] 

Accés als valors d'una matriu

Els índexs d'una matriu es poden utilitzar per accedir als elements emmagatzemats en ella. Les dades emmagatzemades en una matriu són accessibles mitjançant el mateix enfocament que fem servir per a una matriu bidimensional.

sobrecàrrega del mètode

Codi

 # Python program to access elements of a matrix # Importing numpy import numpy as np # Creating the matrix record = np.array( [['Itika', 89, 91], ['Aditi', 96, 82], ['Harry', 91, 81], ['Andrew', 87, 91], ['Peter', 72, 79]]) matrix = np.reshape(record, (5,3)) # Accessing record of Itika print( matrix[0] ) # Accessing marks in the matrix subject of Andrew print( 'Andrew's marks in Matrix subject: ', matrix[3][2] ) 

Sortida:

 ['Itika' '89' '91'] Andrew's marks in Matrix subject: 91 

Mètodes per crear una matriu o matriu Numpy 2-D

Hi ha diversos mètodes per crear una matriu NumPy bidimensional i, per tant, una matriu. Proporcionar entrades per a les files i columnes

Podem proporcionar nombres enters, flotants o fins i tot nombres complexos. Mitjançant l'atribut dtype del mètode array, podem especificar el tipus de dades que volem.

Codi

 # Python program to show how to create a Numpy array # Importing numpy import numpy as np # Creating numpy arrays array1 = np.array([[4, 2, 7, 3], [2, 8, 5, 2]]) print('Array of data type integers: 
', array1) array2 = np.array([[1.5, 2.2, 3.1], [3, 4.4, 2]], dtype = 'float') print('Array of data type float: 
', array2) array3 = np.array([[5, 3, 6], [2, 5, 7]], dtype = 'complex') print('Array of data type complex numbers: 
', array3) 

Sortida:

 Array of data type integers: [[4 2 7 3] [2 8 5 2]] Array of data type float: [[1.5 2.2 3.1] [3. 4.4 2. ]] Array of data type complex numbers: [[5.+0.j 3.+0.j 6.+0.j] [2.+0.j 5.+0.j 7.+0.j]] 

Matriu amb zeros i uns

Codi

 # Python program to show how to create a Numpy array having zeroes and ones # Importing numpy import numpy as np # Creating numpy arrays zeores_array = np.zeros( (3, 2) ) print(zeores_array) ones_array = np.ones( (2, 4), dtype=np.int64 ) print(ones_array) 

Sortida:

 [[0. 0.] [0. 0.] [0. 0.]] [[1 1 1 1] [1 1 1 1]] 

Aquí, hem especificat dtype a 64 bits.

Utilitzant els mètodes arange() i shape().

Codi

 # Python program to show how to create Numpy array using arrange() and shape() methods # Importing numpy import numpy as np # Creating numpy arrays array1 = np.arange( 5 ) print(array1) array2 = np.arange( 6 ).reshape( 2, 3 ) print(array2) 

Sortida:

 [0 1 2 3 4] [[0 1 2] [3 4 5]] 

Operacions de matriu de Python

Addició de matriu Python

Afegirem les dues matrius i utilitzarem el bucle for imbricat a través de les matrius donades.

Codi

llista de tipus de lletra a gimp
 # Python program to add two matrices without using numpy # Creating matrices in the form of nested lists matrix1 = [[23, 43, 12], [43, 13, 55], [23, 12, 13]] matrix2 = [[4, 2, -1], [5, 4, -34], [0, -4, 3]] matrix3 = [[0,1,0], [1,0,0], [0,0,1]] matrix4 = [[0,0,0], [0,0,0], [0,0,0]] matrices_length = len(matrix1) #Adding the three matrices using nested loops for row in range(len(matrix1)): for column in range(len(matrix2[0])): matrix4[row][column] = matrix1[row][column] + matrix2[row][column] + matrix3[row][column] #Printing the final matrix print('The sum of the matrices is = ', matrix4) 

Sortida:

 The sum of the matrices is = [[27, 46, 11], [49, 17, 21], [23, 8, 17]] 

Multiplicació de matrius Python

Operador de multiplicació de matrius Python

A Python @ es coneix com l'operador de multiplicació. Vegem un exemple on utilitzarem aquest operador per multiplicar dues matrius.

Codi

 # Python program to show how to create a matrix using the matrix method. # importing numpy import numpy as np # Creating the matrices matrix1 = np.matrix('3,4;5,6') matrix2 = np.matrix('4,6;8,2') # Usng multiplication operator to multiply two matrices print(matrix1 @ matrix2) 

Sortida:

 [[44 26] [68 42]] 

Multiplicació de matrius de Python sense utilitzar Numpy

Una altra manera de multiplicar dues matrius és utilitzar bucles imbricats. Aquí teniu un exemple per mostrar.

Codi

 # Python program to show how to create a matrix using the matrix method # importing numpy import numpy as np # Creating two matrices matrix1 = [[4, 6, 2], [7, 4, 8], [6, 2, 7]] matrix2 = [[4, 6, 8, 2], [6, 5, 3, 7], [7, 3, 7, 6]] # Result will be a 3x4 matrix output = [[0,0,0,0], [0,0,0,0], [0,0,0,0]] # Iterating through the rows of matrix1 for i in range(len(matrix1)): # iterating through the columns of matrix2 for j in range(len(matrix2[0])): # iterating through the rows of matrix2 for k in range(len(matrix2)): output[i][j] += matrix1[i][k] * matrix2[k][j] for row in output: print(row) 

Sortida:

 [66, 60, 64, 62] [108, 86, 124, 90] [85, 67, 103, 68] 

Python Matrix Inverse

Quan s'ha de resoldre una equació per obtenir el valor d'una variable desconeguda que satisfà les equacions, es calcula la inversa d'una matriu, que és només el recíproc de la matriu com ho faríem a les matemàtiques normals. La inversa d'una matriu és la matriu que dóna la matriu identitat quan multipliquem amb la matriu original. Només una matriu no singular pot tenir una inversa. Una matriu no singular té un determinant diferent de zero.

Codi

 # Python program to show how to calculate the inverse of a matrix # Importing the required library import numpy as np # Creating a matrix A = np.matrix('3, 4, 6; 6, 2, 7; 6, 4, 6') # Calculating the inverse of A print(np.linalg.inv(A)) 

Sortida:

cadena a java booleà
 [[-3.33333333e-01 -7.40148683e-17 3.33333333e-01] [ 1.25000000e-01 -3.75000000e-01 3.12500000e-01] [ 2.50000000e-01 2.50000000e-01 -3.75000000e-01]] 

Transposició de matrius de Python

Python Matrix Transpose sense Numpy

La transposició d'una matriu implica canviar les files i les columnes. Té el símbol X'. Posarem l'objecte a la fila i i la columna j de la matriu X a la fila j i la columna i de la matriu X'. En conseqüència, X' esdevindrà una matriu 4x3 si la matriu original X és una matriu 3x4.

Codi

 # Python program to find the transpose of a matrix using nested loops # Creating a matrix matrix = [[4, 6, 7, 8], [3, 7, 2, 7], [7, 3, 7, 5]] result = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] # iterating through the rows for i in range(len(matrix)): # iterating through the columns for j in range(len(matrix[0])): result[j][i] = matrix[i][j] for row in result: print(row) 

Sortida:

 [4, 3, 7] [6, 7, 3] [7, 2, 7] [8, 7, 5] 

Python Matrix Transpose amb Numpy

Podem utilitzar el mètode matrix.transpose() a Numpy per obtenir la transposició de la matriu.

Codi

 # Python program to find the transpose of a matrix # importing the required module import numpy as np # Creating a matrix using matrix method matrix = np.matrix('[5, 7, 6; 4, 2, 4]') #finding transpose using matrix.transpose method transpose = matrix.transpose() print(transpose) 

Sortida:

 [[5 4] [7 2] [6 4]] 

Conversió de Python Matrix a Array

Podem utilitzar funcions de ravel i flatten per convertir una matriu de Python en una matriu de Python.

Codi

 # Python program to convert a matrix to an array # importing the required module import numpy as np # Creating a matrix using numpy matrix = np.matrix('[4, 6, 7; 5, 2, 6; 6, 3, 6]') # Using ravel() function to covert matrix to array array = matrix.ravel() print(array) # Using flatten() function to covert matrix to array array = np.asarray(matrix).flatten() print(array) # Using reshape() function to covert matrix to array array = (np.asarray(matrix)).reshape(-1) print(array) 

Sortida:

 [[4 6 7 5 2 6 6 3 6]] [4 6 7 5 2 6 6 3 6] [4 6 7 5 2 6 6 3 6]