Python Matrix: Voorbeelden van transponeren, vermenigvuldigen, NumPy-arrays
Wat is Python Matrix?
A Python matrix is een gespecialiseerde tweedimensionale rechthoekige array van data opgeslagen in rijen en kolommen. De data in een matrix kunnen getallen, strings, expressies, symbolen, etc. zijn. Matrix is een van de belangrijke datastructuren die gebruikt kunnen worden in wiskundige en wetenschappelijke berekeningen.
Hoe doen Python Matrixen werken?
De gegevens in de tweedimensionale array in matrixformaat zien er als volgt uit:
Stap 1) Het toont een 2×2 matrix. Het heeft twee rijen en 2 kolommen. De data in de matrix zijn getallen. Rij 1 heeft waarden 2,3 en rij 2 heeft waarden 4,5. De kolommen, d.w.z. col1, hebben waarden 2,4 en col2 heeft waarden 3,5.
Stap 2) Het toont een 2×3-matrix. Het heeft twee rijen en drie kolommen. De gegevens in de eerste rij, dat wil zeggen rij1, hebben de waarden 2,3,4, en rij2 heeft de waarden 5,6,7. De kolommen col1 heeft waarden 2,5, col2 heeft waarden 3,6 en col3 heeft waarden 4,7.
Op dezelfde manier kunt u uw gegevens laten opslaan in de nxn-matrix PythonEr kunnen veel bewerkingen worden uitgevoerd op een matrixachtige manier: optellen, aftrekken, vermenigvuldigen, etc.
Python heeft geen eenvoudige manier om een matrixgegevenstype te implementeren.
De Python-matrix maakt gebruik van arrays, en hetzelfde kan worden geïmplementeerd.
- Maak een Python Matrix met behulp van het geneste lijstgegevenstype
- creëren Python Matrix met arrays van Python Numpy-pakket
creëren Python Matrix met behulp van een genest lijstgegevenstype
In Python, de arrays worden weergegeven met behulp van het gegevenstype lijst. Dus nu gaan we de lijst gebruiken om een pythonmatrix te maken.
We zullen een 3×3-matrix maken, zoals hieronder weergegeven:
- De matrix heeft 3 rijen en 3 kolommen.
- De eerste rij in een lijstindeling ziet er als volgt uit: [8,14,-6]
- De tweede rij in een lijst is: [12,7,4]
- De derde rij in een lijst is: [-11,3,21]
De matrix in een lijst met alle rijen en kolommen is zoals hieronder weergegeven:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Dus volgens de bovenstaande matrix is het lijsttype met matrixgegevens als volgt:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Om gegevens binnenin te lezen Python Matrix met behulp van een lijst.
We zullen gebruik maken van de hierboven gedefinieerde matrix. Het voorbeeld leest de gegevens, drukt de matrix af en geeft het laatste element van elke rij weer.
Voorbeeld: Om de matrix af te drukken
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Output:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Voorbeeld 2: Om het laatste element van elke rij te lezen
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To read the last element from each row. for i in range(matrix_length): print(M1[i][-1])
Output:
-6 4 21
Voorbeeld 3: Om de rijen in de Matrix af te drukken
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To print the rows in the Matrix for i in range(matrix_length): print(M1[i])
Output:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Matrices toevoegen met behulp van geneste lijst
We kunnen gemakkelijk twee gegeven matrices toevoegen. De matrices hier zullen in de lijstvorm zijn. Laten we aan een voorbeeld werken waarbij we ervoor zorgen dat de gegeven matrices worden toegevoegd.
Matrix 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matrix 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Als laatste wordt een matrix geïnitialiseerd waarin het resultaat van M1 + M2 wordt opgeslagen.
Matrix 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Voorbeeld: Matrices toevoegen
Bovendien zullen de matrices gebruik maken van een for-lus die door beide gegeven matrices loopt.
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Add M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] + M2[i][k] #To Print the matrix print("The sum of Matrix M1 and M2 = ", M3)
Output:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Vermenigvuldiging van matrices met behulp van geneste lijst
Om de matrices te vermenigvuldigen, kunnen we de for-lus op beide matrices gebruiken, zoals weergegeven in de onderstaande code:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Multiply M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] * M2[i][k] #To Print the matrix print("The multiplication of Matrix M1 and M2 = ", M3)
Output:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
creëren Python Matrix met arrays van Python Numpy-pakket
De Python-bibliotheek Numpy helpt bij het omgaan met arrays. Numpy verwerkt een array iets sneller in vergelijking met de lijst.
Om met Numpy te kunnen werken, moet je het eerst installeren. Volg de onderstaande stappen om Numpy te installeren.
Stap 1) Het commando om Numpy te installeren is:
pip install NumPy
Stap 2) Om Numpy in uw code te gebruiken, moet u deze importeren.
import NumPy
Stap 3) Je kunt Numpy ook importeren met een alias, zoals hieronder weergegeven:
import NumPy as np
We gaan de methode array() van Numpy gebruiken om een Python-matrix te maken.
Voorbeeld: Array in Numpy om te maken Python Matrix
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Output:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Matrix Operamet Numpy.Array()
De matrixbewerkingen die kunnen worden uitgevoerd zijn optellen, aftrekken, vermenigvuldigen, transponeren, de rijen en kolommen van een matrix lezen, de matrix opdelen, enz. In alle voorbeelden gaan we gebruikmaken van een array()-methode.
Matrixtoevoeging
Om een optelling op de matrix uit te voeren, maken we twee matrices met behulp van numpy.array() en tellen we deze op met behulp van de operator (+).
Voorbeeld:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 + M2 print(M3)
Output:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Matrixaftrekking
Om een aftrekking op de matrix uit te voeren, maken we twee matrices met behulp van numpy.array() en trekken we deze af met behulp van de (-) operator.
Voorbeeld:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 - M2 print(M3)
Output:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Matrix vermenigvuldiging
Eerst worden twee matrices gemaakt met behulp van numpy.arary(). Om ze te vermenigvuldigen, kunt u de numpy dot()-methode gebruiken. Numpy.dot() is het puntproduct van matrix M1 en M2. Numpy.dot() verwerkt de 2D-arrays en voert matrixvermenigvuldigingen uit.
Voorbeeld:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Output:
[[ 93 78] [ -65 -310]]
Matrixtransponering
De transponering van een matrix wordt berekend door de rijen als kolommen en de kolommen als rijen te veranderen. De functie transpose() van Numpy kan worden gebruikt om de transpositie van een matrix te berekenen.
Voorbeeld:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Output:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Het snijden van een matrix
Door te slicen krijgt u de elementen uit de matrix terug op basis van de gegeven start-/eindindex.
- De syntaxis voor het segmenteren is – [start:eind]
- Als de startindex niet wordt opgegeven, wordt deze beschouwd als 0. Bijvoorbeeld [:5] betekent dit als [0:5].
- Als het einde niet wordt overschreden, duurt dit de lengte van de array.
- Als het begin/einde negatieve waarden heeft, wordt het segmenteren vanaf het einde van de array uitgevoerd.
Voordat we gaan werken aan het slicen op een matrix, moeten we eerst begrijpen hoe we slice op een eenvoudige array kunnen toepassen.
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(arr[2:]) # will print the elements from 2 to length of the array. print(arr[-5:-1]) # will print from the end i.e. -5 to -2 print(arr[:-1]) # will print from end i.e. 0 to -2
Output:
[ 8 10 12] [ 2 4 6 8 10] [ 6 8 10 12 14 16] [ 8 10 12 14] [ 2 4 6 8 10 12 14]
Laten we nu het snijden op matrix implementeren. Voor het uitvoeren van segmentering op een matrix
de syntaxis is M1[row_start:row_end, col_start:col_end]
- Het eerste begin/einde is voor de rij, dwz om de rijen van de matrix te selecteren.
- Het tweede begin/einde is voor de kolom, dwz om de kolommen van de matrix te selecteren.
De matrix M1 die we gaan gebruiken is als volgt:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
Er zijn in totaal 4 rijen. De index begint van 0 tot 3. De 0th rij is de [2,4,6,8,10], 1st rij is [3,6,9,-12,-15] gevolgd door 2nd en 3rd.
De matrix M1 heeft 5 kolommen. De index begint van 0 tot 4. De 0th kolom heeft waarden [2,3,4,5], 1st kolommen hebben waarden [4,6,8,-10] gevolgd door 2nd, 3rd, 4then 5th.
Hier is een voorbeeld dat laat zien hoe u de rijen- en kolomgegevens uit de matrix haalt met behulp van slicing. In het voorbeeld printen we de 1st en 2nd rij, en voor kolommen willen we de eerste, tweede en derde kolom. Om die uitvoer te krijgen hebben we gebruikt: M1[1:3, 1:4]
Voorbeeld:
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[1:3, 1:4]) # For 1:3, it will give first and second row. #The columns will be taken from first to third.
Output:
[[ 6 9 -12] [ 8 12 16]]
Voorbeeld: Om alle rijen en derde kolommen af te drukken
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,3]) # This will print all rows and the third column data.
Output:
[ 8 -12 16 -20]
Voorbeeld: Om de eerste rij en alle kolommen af te drukken
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:1,]) # This will print first row and all columns
Output:
[[ 2 4 6 8 10]]
Voorbeeld: Om de eerste drie rijen en de eerste twee kolommen af te drukken
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:3,:2])
Output:
[[2 4] [3 6] [4 8]]
Toegang tot de NumPy-matrix
We hebben gezien hoe het snijden werkt. Als we dat in overweging nemen, gaan we bekijken hoe we de rijen en kolommen uit de matrix kunnen halen.
Om de rijen van de matrix af te drukken
In het voorbeeld worden de rijen van de matrix afgedrukt.
Voorbeeld:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) print(M1[0]) #first row print(M1[1]) # the second row print(M1[-1]) # -1 will print the last row
Output:
[3 6 9] [ 5 -10 15] [ 4 8 12]
Om de laatste rij te krijgen, kunt u gebruik maken van de index of -1. De matrix heeft bijvoorbeeld 3 rijen,
dus M1[0] geeft je de eerste rij,
M1[1] geeft je de tweede rij
M1[2] of M1[-1] geeft je de derde rij of laatste rij.
Om de kolommen van de matrix af te drukken
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,0]) # Will print the first Column print(M1[:,3]) # Will print the third Column print(M1[:,-1]) # -1 will give you the last column
Output:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
Samenvatting
- A Python matrix is een gespecialiseerde tweedimensionale rechthoekige array van data opgeslagen in rijen en kolommen. De data in een matrix kunnen getallen, strings, expressies, symbolen, etc. zijn. Matrix is een van de belangrijke datastructuren die gebruikt kunnen worden in wiskundige en wetenschappelijke berekeningen.
- Python heeft geen eenvoudige manier om een matrixgegevenstype te implementeren. Python matrix kan worden gemaakt met behulp van een genest lijstgegevenstype en met behulp van de numpy-bibliotheek.
- De Python-bibliotheek Numpy helpt bij het omgaan met arrays. Numpy verwerkt een array iets sneller in vergelijking met de lijst.
- De matrixbewerkingen die kunnen worden uitgevoerd zijn optellen, aftrekken, vermenigvuldigen, transponeren, het lezen van de rijen en kolommen van een matrix, het opdelen van de matrix, etc.
- Om twee matrices op te tellen, kunt u numpy.array() gebruiken en ze optellen met behulp van de operator (+).
- Om ze te vermenigvuldigen, kun je gebruik maken van de numpy dot() methode. Numpy.dot() is het puntproduct van matrix M1 en M2. Numpy.dot() verwerkt de 2D-arrays en voert matrixvermenigvuldigingen uit.
- De transponering van een matrix wordt berekend door de rijen als kolommen en de kolommen als rijen te veranderen. De functie transpose() van Numpy kan worden gebruikt om de transpositie van een matrix te berekenen.
- Door een matrix in segmenten te snijden, krijgt u de elementen terug op basis van de gegeven start-/eindindex.