logo

Python Matrix

V tej vadnici bomo spoznali matrike Python. V Pythonu je matrični objekt podoben ugnezdenim seznamom, saj so večdimenzionalni. Videli bomo, kako ustvariti matriko z uporabo nizov Numpy. Nato si bomo ogledali različne metode matričnih operacij in primere za boljše razumevanje.

Kaj je matrika v Pythonu?

Matrika v Pythonu je pravokotna matrika Numpy. Ta niz mora biti dvodimenzionalen. Vsebuje podatke, shranjene v vrsticah in stolpcih matrike. V matriki Python se vodoravne serije elementov imenujejo 'vrstice', medtem ko se navpične serije elementov imenujejo 'stolpci'. Vrstice in stolpci so naloženi drug čez drugega tako kot ugnezdeni seznam. Če matrika vsebuje r število vrstic in c število stolpcev, kjer sta r in c pozitivni celi števili, potem r x c določa vrstni red tega matričnega objekta.

V matriko lahko hranimo nize, cela števila in objekte drugih tipov podatkov. Podatki so shranjeni v nizih vrstic in stolpcev v matriki. Matrika je ključna podatkovna struktura za izračune v matematiki in naravoslovju. V Pythonu menimo, da je seznam seznamov ali ugnezdeni seznam matrika, saj Python ne vključuje nobenega vgrajenega tipa za matrični objekt.

V tej vadnici bomo šli skozi naslednji seznam metod delovanja matrike.

bash else if
  • Dodatek matrike
  • Matrično množenje
  • Operator množenja matrik
  • Matrično množenje brez Numpyja
  • Inverzna matrika
  • Transponiranje matrice
  • Matrika v niz

Kako delujejo matrike v Pythonu?

Podatke zapišemo v dvodimenzionalni niz, da ustvarimo matriko. Izvaja se na naslednji način:

Primer

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

Prikazuje matriko, ki ima 3 vrstice in 5 stolpcev, torej je njena dimenzija 3×5. Objekti tipa celih podatkov sestavljajo podatke v tej matriki. Vrstica1, prva vrstica, ima vrednosti (2, 3, 5, 7, 6), medtem ko ima vrstica2 vrednosti (3, 2, 6, 7, 2), vrstica3 pa vrednosti 5, 7, 2, 6, 1. Glede stolpci, Stolpec1 ima vrednosti (2, 3, 5), Stolpec2 ima vrednosti (3, 2, 7) in tako naprej.

Primer

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

Prikazuje matriko, ki ima 3 vrstice in 3 stolpce, torej je njena dimenzija 3 × 3. Take matrike z enakimi vrsticami in stolpci imenujemo kvadratne matrike.

Podobno Python uporabnikom omogoča shranjevanje svojih podatkov znotraj m x n dimenzionalne matrike. Izvajamo lahko seštevanje matrik, množenje, transpozicijo in druge operacije na matriki podobni strukturi.

Implementacija matričnega objekta v Pythonu ni preprosta. Python matriko lahko ustvarimo z uporabo nizov in jih podobno uporabimo.

Niz NumPy

Znanstvena računalniška programska oprema NumPy podpira robusten objekt N-dimenzionalne matrike. Namestitev NumPy je predpogoj za uporabo v našem programu.

java vrže izjemo

NumPy lahko uporabljate in uvozite po namestitvi. Poznavanje osnov Numpy Array bo koristno pri razumevanju matrik.

NumPy zagotavlja nize z več dimenzijami elementov. Tukaj je ilustracija:

Koda

 # 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)) 

Izhod:

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

Kot lahko vidimo, pripadajo polja Numpy razredu ndarray.

Primer ustvarjanja matrike z uporabo Numpy Array

Razmislite o scenariju, kjer ustvarimo evidenco ocen študentov. Zabeležili bomo ime in ocene dijaka pri dveh predmetih, programiranje Python in Matrix. Ustvarili bomo dvodimenzionalno matriko z uporabo matrike numpy in jo nato preoblikovali.

Koda

 # 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) 

Izhod:

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

Primer ustvarjanja matrike z uporabo metode Numpy Matrix

Za ustvarjanje 2D matrike lahko uporabimo numpy.matrix.

Koda

 # 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) 

Izhod:

 [[3 4] [5 6]] 

Dostop do vrednosti matrike

Indekse matrike lahko uporabite za dostop do elementov, ki so v njej shranjeni. Podatki, shranjeni v matriki, so dostopni z enakim pristopom, kot ga uporabljamo za dvodimenzionalni niz.

javascript najbližje

Koda

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

Izhod:

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

Metode za ustvarjanje 2-D Numpy Array ali Matrix

Obstaja več metod za ustvarjanje dvodimenzionalne matrike NumPy in s tem matrike. Zagotavljanje vnosov za vrstice in stolpce

Zagotovimo lahko cela števila, števila s plavajočo številko ali celo kompleksna števila. Z uporabo atributa dtype matrične metode lahko določimo želeni podatkovni tip.

Koda

 # 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) 

Izhod:

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

Matrika z ničlami ​​in enicami

Koda

 # 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) 

Izhod:

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

Tukaj smo podali dtype na 64 bitov.

Uporaba metod arange() in shape().

Koda

 # 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) 

Izhod:

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

Matrične operacije Python

Dodatek Python Matrix

Dodali bomo dve matriki in uporabili ugnezdeno zanko for skozi podane matrike.

Koda

 # 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) 

Izhod:

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

Python matrično množenje

Operator množenja matrike Python

git pull sintaksa

V Pythonu je @ znan kot operator množenja. Oglejmo si primer, kjer bomo uporabili ta operator za množenje dveh matrik.

Koda

 # 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) 

Izhod:

 [[44 26] [68 42]] 

Python matrično množenje brez uporabe Numpy

Drug način množenja dveh matrik je uporaba ugnezdenih zank. Tukaj je primer za prikaz.

Koda

 # 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) 

Izhod:

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

Python Matrix Inverse

Ko je treba rešiti enačbo, da dobimo vrednost neznane spremenljivke, ki zadovoljuje enačbe, se izračuna inverzna vrednost matrike, ki je samo recipročna vrednost matrike, kot bi to storili v običajni matematiki. Inverzna matrika je matrika, ki daje identitetno matriko, ko pomnožimo z izvirno matriko. Samo nesingularna matrika ima lahko inverz. Nesingularna matrika ima determinanto, ki ni nič.

Koda

 # 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)) 

Izhod:

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

Python Matrix Transpose

Python Matrix Transpose brez Numpy

3d v autocadu

Transpozicija matrike vključuje preklapljanje vrstic in stolpcev. Ima simbol X'. Predmet bomo postavili v vrstico i in stolpec j matrike X v vrstico j in stolpec i matrike X'. Posledično bo X' postal matrika 4x3, če je prvotna matrika X matrika 3x4.

Koda

 # 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) 

Izhod:

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

Python Matrix Transpose z uporabo Numpy

Za pridobitev prenosa matrike lahko uporabimo metodo matrix.transpose() v Numpyju.

Koda

 # 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) 

Izhod:

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

Pretvarjanje matrike Python v matriko

Funkciji ravel in flatten lahko uporabimo za pretvorbo matrike Python v matriko Python.

Koda

 # 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) 

Izhod:

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