Python Matrica: transponiranje, množenje, primjeri nizova NumPy
Što je Python Matrica?
A Python matrica je specijalizirani dvodimenzionalni pravokutni niz podataka pohranjenih u redovima i stupcima. Podaci u matrici mogu biti brojevi, nizovi, izrazi, simboli itd. Matrica je jedna od važnih struktura podataka koja se može koristiti u matematičkim i znanstvenim izračunima.
Kako Python Matrice rade?
Podaci unutar dvodimenzionalnog niza u matričnom formatu izgledaju ovako:
Korak 1) Prikazuje matricu 2×2. Ima dva retka i 2 stupca. Podaci unutar matrice su brojevi. Red1 ima vrijednosti 2,3, a red2 ima vrijednosti 4,5. Stupci, tj. col1, imaju vrijednosti 2,4, a col2 ima vrijednosti 3,5.
Korak 2) Prikazuje matricu 2×3. Ima dva retka i tri stupca. Podaci unutar prvog reda, tj. row1, imaju vrijednosti 2,3,4, a row2 ima vrijednosti 5,6,7. Stupci col1 imaju vrijednosti 2,5, col2 imaju vrijednosti 3,6, a col3 imaju vrijednosti 4,7.
Slično tome, možete imati svoje podatke pohranjene unutar nxn matrice Python. Mnogo se operacija može izvesti na matričnom zbrajanju, oduzimanju, množenju itd.
Python nema jednostavan način za implementaciju matričnog tipa podataka.
Python matrica koristi nizove, a isto se može implementirati.
- Napravite Python Matrica koja koristi tip podataka ugniježđenog popisa
- stvoriti Python Matrica koja koristi nizove iz Python Numpy paket
stvoriti Python Matrica koja koristi tip podataka ugniježđenog popisa
In Python, nizovi su predstavljeni pomoću tipa podataka liste. Dakle, sada ćemo iskoristiti popis za stvaranje python matrice.
Napravit ćemo matricu 3×3, kao što je prikazano u nastavku:
- Matrica ima 3 retka i 3 stupca.
- Prvi redak u formatu popisa bit će sljedeći: [8,14,-6]
- Drugi red na listi će biti: [12,7,4]
- Treći red na popisu bit će: [-11,3,21]
Matrica unutar popisa sa svim redcima i stupcima je kao što je prikazano u nastavku:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Dakle, prema gore navedenoj matrici, vrsta popisa s podacima matrice je sljedeća:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Za čitanje podataka unutra Python Matrica pomoću liste.
Koristit ćemo se gore definiranom matricom. Primjer će pročitati podatke, ispisati matricu, prikazati zadnji element iz svakog retka.
Primjer: Za ispis matrice
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Izlaz:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Primjer 2: Za čitanje posljednjeg elementa iz svakog retka
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])
Izlaz:
-6 4 21
Primjer 3: Za ispis redaka u Matrici
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])
Izlaz:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Dodavanje matrica pomoću ugniježđenog popisa
Lako možemo zbrojiti dvije zadane matrice. Matrice će ovdje biti u obliku liste. Poradimo na primjeru koji će se pobrinuti za zbrajanje zadanih matrica.
Matrica 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matrica 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Last će inicijalizirati matricu koja će pohraniti rezultat M1 + M2.
Matrica 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Primjer: zbrajanje matrica
Da dodamo, matrice će koristiti for-petlju koja će prolaziti kroz obje dane matrice.
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)
Izlaz:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Množenje matrica korištenjem ugniježđene liste
Za množenje matrica možemo upotrijebiti for-petlju na obje matrice kao što je prikazano u donjem kodu:
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)
Izlaz:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
stvoriti Python Matrica koja koristi nizove iz Python Numpy paket
Python biblioteka Numpy pomaže u radu s nizovima. Numpy obrađuje niz malo brže u usporedbi s popisom.
Da biste radili s Numpyjem, prvo ga morate instalirati. Slijedite dolje navedene korake za instalaciju Numpyja.
Korak 1) Naredba za instaliranje Numpyja je:
pip install NumPy
Korak 2) Da biste koristili Numpy u svom kodu, morate ga uvesti.
import NumPy
Korak 3) Također možete uvesti Numpy koristeći alias, kao što je prikazano u nastavku:
import NumPy as np
Iskoristit ćemo metodu array() iz Numpyja za stvaranje python matrice.
Primjer: Niz u Numpyju za stvaranje Python Distributori
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Izlaz:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Distributori Operacija pomoću Numpy.Array()
Operacija matrice koja se može izvesti je zbrajanje, oduzimanje, množenje, transponiranje, čitanje redaka, stupaca matrice, rezanje matrice itd. U svim primjerima koristit ćemo metodu array().
Zbrajanje matrica
Da bismo izvršili zbrajanje na matrici, stvorit ćemo dvije matrice pomoću numpy.array() i dodati ih pomoću operatora (+).
Primjer:
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)
Izlaz:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Oduzimanje matrice
Da bismo izvršili oduzimanje na matrici, stvorit ćemo dvije matrice pomoću numpy.array() i oduzeti ih pomoću (-) operatora.
Primjer:
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)
Izlaz:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Množenje matrice
Prvo će stvoriti dvije matrice pomoću numpy.arary(). Da biste ih pomnožili, možete koristiti metodu numpy dot(). Numpy.dot() je točkasti umnožak matrice M1 i M2. Numpy.dot() rukuje 2D nizovima i izvodi matrična množenja.
Primjer:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Izlaz:
[[ 93 78] [ -65 -310]]
Transponiranje matrice
Transponiranje matrice se izračunava mijenjanjem redaka u stupce i stupaca u retke. Funkcija transpose() iz Numpyja može se koristiti za izračunavanje transponiranja matrice.
Primjer:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Izlaz:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Rezanje matrice
Rezanje će vam vratiti elemente iz matrice na temelju danog početnog/krajnjeg indeksa.
- Sintaksa za rezanje je – [početak:kraj]
- Ako početni indeks nije dan, smatra se da je 0. Na primjer [:5], to znači kao [0:5].
- Ako kraj nije proslijeđen, uzet će se kao duljina niza.
- Ako početak/kraj ima negativne vrijednosti, rezanje će se izvršiti od kraja niza.
Prije nego počnemo raditi na rezanju na matrici, prvo ćemo razumjeti kako primijeniti rezanje na jednostavan niz.
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
Izlaz:
[ 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]
Sada implementirajmo rezanje na matricu. Za izvođenje rezanja na matrici
sintaksa će biti M1[row_start:row_end, col_start:col_end]
- Prvi početak/kraj bit će za red, tj. za odabir redaka matrice.
- Drugi početak/kraj bit će za stupac, tj. za odabir stupaca matrice.
Matrica M1 koju ćemo koristiti je sljedeća:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
Ima ukupno 4 reda. Indeks počinje od 0 do 3. 0th redak je [2,4,6,8,10], 1st red je [3,6,9,-12,-15] nakon kojeg slijedi 2nd i 3rd.
Matrica M1 ima 5 stupaca. Indeks počinje od 0 do 4. 0th stupac ima vrijednosti [2,3,4,5], 1st stupci imaju vrijednosti [4,6,8,-10] iza kojih slijedi 2nd, 3rd, 4th, i 5th.
Ovdje je primjer koji pokazuje kako dobiti podatke o recima i stupcima iz matrice pomoću rezanja. U primjeru ispisujemo 1st i 2nd redak, a za stupce želimo prvi, drugi i treći stupac. Da bismo dobili taj rezultat koristili smo: M1[1:3, 1:4]
Primjer:
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.
Izlaz:
[[ 6 9 -12] [ 8 12 16]]
Primjer : Za ispis svih redaka i trećih stupaca
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.
Izlaz:
[ 8 -12 16 -20]
Primjer: Za ispis prvog reda i svih stupaca
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
Izlaz:
[[ 2 4 6 8 10]]
Primjer: Za ispis prva tri retka i prva 2 stupca
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])
Izlaz:
[[2 4] [3 6] [4 8]]
Pristup NumPy Matrixu
Vidjeli smo kako funkcionira rezanje. Uzimajući to u obzir, vidjet ćemo kako dobiti retke i stupce iz matrice.
Za ispis redaka matrice
U primjeru ćemo ispisati redove matrice.
Primjer:
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
Izlaz:
[3 6 9] [ 5 -10 15] [ 4 8 12]
Da biste dobili zadnji red, možete upotrijebiti indeks ili -1. Na primjer, matrica ima 3 reda,
tako da će vam M1[0] dati prvi red,
M1[1] će vam dati drugi red
M1[2] ili M1[-1] će vam dati treći red ili zadnji red.
Za ispis stupaca matrice
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
Izlaz:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
rezime
- A Python matrica je specijalizirani dvodimenzionalni pravokutni niz podataka pohranjenih u redovima i stupcima. Podaci u matrici mogu biti brojevi, nizovi, izrazi, simboli itd. Matrica je jedna od važnih struktura podataka koja se može koristiti u matematičkim i znanstvenim izračunima.
- Python nema jednostavan način za implementaciju matričnog tipa podataka. Python matrica se može stvoriti pomoću tipa podataka ugniježđenog popisa i pomoću knjižnice numpy.
- Python biblioteka Numpy pomaže u radu s nizovima. Numpy obrađuje niz malo brže u usporedbi s popisom.
- Operacija matrice koja se može izvesti je zbrajanje, oduzimanje, množenje, transponiranje, čitanje redaka, stupaca matrice, rezanje matrice itd.
- Za dodavanje dviju matrica možete upotrijebiti numpy.array() i dodati ih pomoću operatora (+).
- Da biste ih pomnožili, možete koristiti metodu numpy dot(). Numpy.dot() je točkasti umnožak matrice M1 i M2. Numpy.dot() rukuje 2D nizovima i izvodi matrična množenja.
- Transponiranje matrice izračunava se mijenjanjem redaka u stupce i stupaca u retke. Funkcija transpose() iz Numpyja može se koristiti za izračunavanje transponiranja matrice.
- Rezanje matrice će vam vratiti elemente na temelju danog početnog/krajnjeg indeksa.