Python Matris: Transponering, Multiplikation, NumPy Arrays Exempel
Vad är Python Matris?
A Python matris är en specialiserad tvådimensionell rektangulär matris av data lagrad i rader och kolumner. Data i en matris kan vara siffror, strängar, uttryck, symboler etc. Matris är en av de viktiga datastrukturer som kan användas i matematiska och vetenskapliga beräkningar.
Hur gör Python Fungerar matriser?
Data inuti den tvådimensionella matrisen i matrisformat ser ut som följer:
Steg 1) Den visar en 2×2-matris. Den har två rader och 2 kolumner. Data inuti matrisen är siffror. Rad1 har värdena 2,3 och rad2 har värden 4,5. Kolumnerna, dvs col1, har värdena 2,4 och col2 har värdena 3,5.
Steg 2) Den visar en 2×3-matris. Den har två rader och tre kolumner. Data inuti den första raden, dvs rad1, har värdena 2,3,4, och rad2 har värdena 5,6,7. Kolumnerna kol1 har värdena 2,5, kol2 har värdena 3,6 och kol3 har värdena 4,7.
Så på samma sätt kan du ha dina data lagrade inuti nxn-matrisen Python. Många operationer kan göras på en matrisliknande addition, subtraktion, multiplikation, etc.
Python har inte ett enkelt sätt att implementera en matrisdatatyp.
Pythonmatrisen använder sig av arrayer, och detsamma kan implementeras.
- Skapa en Python Matris som använder den kapslade listdatatypen
- Skapa Python Matris med Arrays från Python Numpy paket
Skapa Python Matris med en kapslad listdatatyp
In Python, representeras arrayerna med hjälp av listdatatypen. Så nu kommer att använda listan för att skapa en pythonmatris.
Vi kommer att skapa en 3×3-matris, som visas nedan:
- Matrisen har 3 rader och 3 kolumner.
- Den första raden i ett listformat blir som följer: [8,14,-6]
- Den andra raden i en lista kommer att vara: [12,7,4]
- Den tredje raden i en lista kommer att vara: [-11,3,21]
Matrisen i en lista med alla rader och kolumner är som visas nedan:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Så enligt matrisen ovan är listtypen med matrisdata som följer:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
För att läsa data inuti Python Matris med hjälp av en lista.
Vi kommer att använda oss av matrisen som definieras ovan. Exemplet kommer att läsa data, skriva ut matrisen, visa det sista elementet från varje rad.
Exempel: För att skriva ut matrisen
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Produktion:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Exempel 2: Att läsa det sista elementet från varje rad
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])
Produktion:
-6 4 21
Exempel 3: Att skriva ut raderna i matrisen
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])
Produktion:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Lägga till matriser med kapslad lista
Vi kan enkelt lägga till två givna matriser. Matriserna här kommer att finnas i listformen. Låt oss arbeta med ett exempel som kommer att lägga till de givna matriserna.
Matris 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matris 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Last kommer att initiera en matris som lagrar resultatet av M1 + M2.
Matris 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Exempel: Lägga till matriser
För att lägga till kommer matriserna att använda sig av en for-loop som går igenom båda de angivna matriserna.
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)
Produktion:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Multiplikation av matriser med kapslad lista
För att multiplicera matriserna kan vi använda for-loopen på båda matriserna som visas i koden nedan:
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)
Produktion:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Skapa Python Matris med Arrays från Python Numpy paket
Pythonbiblioteket Numpy hjälper till att hantera arrayer. Numpy bearbetar en array lite snabbare jämfört med listan.
För att arbeta med Numpy måste du installera det först. Följ stegen nedan för att installera Numpy.
Steg 1) Kommandot för att installera Numpy är:
pip install NumPy
Steg 2) För att använda Numpy i din kod måste du importera den.
import NumPy
Steg 3) Du kan också importera Numpy med ett alias, som visas nedan:
import NumPy as np
Vi kommer att använda array()-metoden från Numpy för att skapa en pythonmatris.
Exempel: Array i Numpy för att skapa Python Matris
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Produktion:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Matris Operation med hjälp av Numpy.Array()
Matrisoperationen som kan göras är addition, subtraktion, multiplikation, transponering, läsning av rader, kolumner i en matris, slicing av matrisen, etc. I alla exemplen kommer vi att använda en array()-metod.
Matristillägg
För att utföra addition på matrisen skapar vi två matriser med numpy.array() och lägger till dem med operatorn (+).
Exempelvis:
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)
Produktion:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Matrissubtraktion
För att utföra subtraktion på matrisen skapar vi två matriser med numpy.array() och subtraherar dem med operatorn (-).
Exempelvis:
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)
Produktion:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Matrismultiplikation
First kommer att skapa två matriser med numpy.arary(). För att multiplicera dem kan du använda numpy dot()-metoden. Numpy.dot() är punktprodukten av matrisen M1 och M2. Numpy.dot() hanterar 2D-matriserna och utför matrismultiplikationer.
Exempelvis:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Produktion:
[[ 93 78] [ -65 -310]]
Matrix Transponera
Transponeringen av en matris beräknas genom att raderna ändras som kolumner och kolumner som rader. Transpose()-funktionen från Numpy kan användas för att beräkna transponeringen av en matris.
Exempelvis:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Produktion:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Skivning av en matris
Slicing kommer att returnera elementen från matrisen baserat på det angivna start-/slutindexet.
- Syntaxen för skivning är – [start:slut]
- Om startindexet inte anges anses det vara 0. Till exempel [:5], betyder det som [0:5].
- Om slutet inte passeras tar det som längden på arrayen.
- Om starten/slutet har negativa värden kommer det att skäras upp från slutet av arrayen.
Innan vi arbetar med att skiva på en matris, låt oss först förstå hur man applicerar skiva på en enkel array.
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
Produktion:
[ 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]
Låt oss nu implementera skivning på matris. Att utföra skivning på en matris
syntaxen kommer att vara M1[row_start:row_end, col_start:col_end]
- Den första starten/slutet kommer att vara för raden, dvs för att välja raderna i matrisen.
- Den andra starten/slutet kommer att vara för kolumnen, dvs för att välja kolumnerna i matrisen.
Matrisen M1 t som vi ska använda är följande:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
Det finns totalt 4 rader. Indexet börjar från 0 till 3. 0:anth raden är [2,4,6,8,10], 1st rad är [3,6,9,-12,-15] följt av 2nd och 3rd.
Matrisen M1 har 5 kolumner. Indexet börjar från 0 till 4. 0th kolumnen har värdena [2,3,4,5], 1st kolumner har värden [4,6,8,-10] följt av 2nd, 3rd, 4th, och 5th.
Här är ett exempel som visar hur man hämtar rad- och kolumndata från matrisen med hjälp av skivning. I exemplet skriver vi ut 1:anst och 2nd rad, och för kolumner vill vi ha den första, andra och tredje kolumnen. För att få den utgången har vi använt: M1[1:3, 1:4]
Exempelvis:
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.
Produktion:
[[ 6 9 -12] [ 8 12 16]]
Exempel: För att skriva ut alla rader och tredje kolumner
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.
Produktion:
[ 8 -12 16 -20]
Exempel: För att skriva ut den första raden och alla kolumner
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
Produktion:
[[ 2 4 6 8 10]]
Exempel: För att skriva ut de tre första raderna och de två första kolumnerna
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])
Produktion:
[[2 4] [3 6] [4 8]]
Åtkomst till NumPy Matrix
Vi har sett hur skivning fungerar. Med hänsyn till det kommer vi att ta reda på hur man hämtar rader och kolumner från matrisen.
För att skriva ut raderna i matrisen
I exemplet kommer att skriva ut raderna i matrisen.
Exempelvis:
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
Produktion:
[3 6 9] [ 5 -10 15] [ 4 8 12]
För att få den sista raden kan du använda indexet eller -1. Till exempel har matrisen 3 rader,
så M1[0] ger dig den första raden,
M1[1] ger dig andra raden
M1[2] eller M1[-1] ger dig den tredje raden eller sista raden.
För att skriva ut matrisens kolumner
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
Produktion:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
Sammanfattning
- A Python matris är en specialiserad tvådimensionell rektangulär matris av data lagrad i rader och kolumner. Data i en matris kan vara siffror, strängar, uttryck, symboler etc. Matris är en av de viktiga datastrukturer som kan användas i matematiska och vetenskapliga beräkningar.
- Python har inte ett enkelt sätt att implementera en matrisdatatyp. Python matris kan skapas med en kapslad listdatatyp och genom att använda numpy-biblioteket.
- Pythonbiblioteket Numpy hjälper till att hantera arrayer. Numpy bearbetar en array lite snabbare jämfört med listan.
- Den matrisoperation som kan göras är addition, subtraktion, multiplikation, transponering, läsning av rader, kolumner i en matris, skiva matrisen, etc.
- För att lägga till två matriser kan du använda numpy.array() och lägga till dem med operatorn (+).
- För att multiplicera dem kan du använda numpy dot()-metoden. Numpy.dot() är punktprodukten av matrisen M1 och M2. Numpy.dot() hanterar 2D-matriserna och utför matrismultiplikationer.
- Transponeringen av en matris beräknas genom att raderna ändras som kolumner och kolumner som rader. Transpose()-funktionen från Numpy kan användas för att beräkna transponeringen av en matris.
- Skivning av en matris kommer att returnera elementen baserat på det angivna start-/slutindexet.