Čo je to Python Matrix?
Matica Python je špecializované dvojrozmerné obdĺžnikové pole údajov uložených v riadkoch a stĺpcoch. Údaje v matici môžu byť čísla, reťazce, výrazy, symboly atď. Matica je jednou z dôležitých dátových štruktúr, ktorú je možné použiť v matematických a vedeckých výpočtoch.
V tomto výučbe pre Python sa dozviete:
- Čo je to Python Matrix?
- Ako fungujú matice Pythonu?
- Vytvorte maticu Python pomocou dátového typu vnoreného zoznamu
- Čítať dáta vo vnútri Python Matrix pomocou zoznamu.
- Príklad 2: Čítanie posledného prvku z každého riadku.
- Príklad 3: Ak chcete vytlačiť riadky v Matrixe
- Pridávanie matíc pomocou vnoreného zoznamu
- Násobenie matíc pomocou vnoreného zoznamu
- Vytvorte Python Matrix pomocou polí z balíka Python Numpy
- Maticová prevádzka pomocou Numpy.Array ()
- Prístup k matici NumPy
Ako fungujú matice Pythonu?
Údaje vo dvojrozmernom poli v maticovom formáte vyzerajú takto:Krok 1)
Ukazuje maticu 2x2. Má dva riadky a 2 stĺpce. Údaje vo vnútri matice sú čísla. Riadok1 má hodnoty 2,3 a riadok2 má hodnoty 4,5. Stĺpce, tj. Col1, majú hodnoty 2,4 a col2 majú hodnoty 3,5.
Krok 2)
Ukazuje maticu 2x3. Má dva riadky a tri stĺpce. Údaje vo vnútri prvého riadku, tj. Riadok1, majú hodnoty 2,3,4 a riadok2 majú hodnoty 5,6,7. Stĺpce col1 majú hodnoty 2,5, col2 majú hodnoty 3,6 a col3 majú hodnoty 4,7.
Podobne môžete mať svoje údaje uložené v matici nxn v Pythone. Veľa operácií je možné vykonať na maticovom sčítaní, odčítaní, násobení atď.
Python nemá priamy spôsob implementácie dátového typu matice.
Matica python využíva polia a to isté možno implementovať.
- Vytvorte maticu Python pomocou dátového typu vnoreného zoznamu
- Vytvorte Python Matrix pomocou polí z balíka Python Numpy
Vytvorte maticu Python pomocou dátového typu vnoreného zoznamu
V Pythone sú polia reprezentované pomocou dátového typu zoznam. Teraz teda použijeme zoznam na vytvorenie pythonovej matice.
Vytvoríme maticu 3x3, ako je uvedené nižšie:
- Matica má 3 riadky a 3 stĺpce.
- Prvý riadok vo formáte zoznamu bude nasledovný: [8,14, -6]
- Druhý riadok v zozname bude: [12,7,4]
- Tretí riadok v zozname bude: [-11,3,21]
Matica v zozname so všetkými riadkami a stĺpcami je uvedená nižšie:
List = [[Row1],[Row2],[Row3]… [RowN]]
Podľa matice uvedenej vyššie je typ zoznamu s maticovými údajmi nasledovný:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Čítať dáta vo vnútri Python Matrix pomocou zoznamu.
Využijeme vyššie definovanú maticu. Príklad načíta údaje, vytlačí maticu, zobrazí posledný prvok z každého riadku.
Príklad: Ak chcete vytlačiť maticu
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]#To print the matrixprint(M1)
Výkon:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Príklad 2: Čítanie posledného prvku z každého riadku.
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])
Výkon:
-6421
Príklad 3: Ak chcete vytlačiť riadky v Matrixe
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]matrix_length = len(M1)#To print the rows in the Matrixfor i in range(matrix_length):print(M1[i])
Výkon:
[8, 14, -6][12, 7, 4][-11, 3, 21]
Pridávanie matíc pomocou vnoreného zoznamu
Ľahko môžeme pridať dve dané matice. Matice tu budú vo forme zoznamu. Pracujme na príklade, ktorý sa postará o doplnenie daných matíc.
Matica 1:
M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]
Matica 2:
M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]
Last inicializuje maticu, ktorá uloží výsledok M1 + M2.
Matica 3:
M3 = [[0,0,0],[0,0,0],[0,0,0]]
Príklad: Pridávanie matíc
Pre doplnenie budú matice využívať slučku for-loop, ktorá bude prechádzať cez obe uvedené matice.
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 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] + M2[i][k]#To Print the matrixprint("The sum of Matrix M1 and M2 = ", M3)
Výkon:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Násobenie matíc pomocou vnoreného zoznamu
Na znásobenie matíc môžeme použiť for-loop na obidvoch maticiach, ako je uvedené v nižšie uvedenom kóde:
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 matricesfor i in range(len(M1)):for k in range(len(M2)):M3[i][k] = M1[i][k] * M2[i][k]#To Print the matrixprint("The multiplication of Matrix M1 and M2 = ", M3)
Výkon:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Vytvorte Python Matrix pomocou polí z balíka Python Numpy
Pytónová knižnica Numpy pomáha pri riešení polí. Numpy spracuje pole o niečo rýchlejšie v porovnaní so zoznamom.
Ak chcete pracovať s Numpy, musíte si ho najskôr nainštalovať. Podľa pokynov uvedených nižšie nainštalujte Numpy.
Krok 1)
Príkaz na inštaláciu Numpy je:
pip install NumPy
Krok 2)
Ak chcete vo svojom kóde použiť Numpy, musíte ho importovať.
import NumPy
Krok 3)
Môžete tiež importovať Numpy pomocou aliasu, ako je uvedené nižšie:
import NumPy as np
Na vytvorenie matice pythonu použijeme metódu array () z Numpy.
Príklad: Pole v Numpy na vytvorenie Python Matrix
import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)
Výkon:
[[ 5 -10 15][ 3 -6 9][ -4 8 12]]
Maticová prevádzka pomocou Numpy.Array ()
Maticovou operáciou, ktorú je možné vykonať, je sčítanie, odčítanie, násobenie, transpozícia, čítanie riadkov, stĺpcov matice, krájanie matice atď. Vo všetkých príkladoch použijeme metódu array ().
Maticový prírastok
Aby sme vykonali sčítanie v matici, vytvoríme dve matice pomocou numpy.array () a pridáme ich pomocou operátora (+).
Príklad:
import numpy as npM1 = 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 + M2print(M3)
Výkon:
[[ 12 -12 36][ 16 12 48][ 6 -12 60]]
Odčítanie matice
Aby sme vykonali odčítanie na matici, vytvoríme dve matice pomocou numpy.array () a odčítame ich pomocou operátora (-).
Príklad:
import numpy as npM1 = 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 - M2print(M3)
Výkon:
[[ -6 24 -18][ -6 -32 -18][-20 40 -18]]
Násobenie matíc
Najskôr vytvoríme dve matice pomocou numpy.arary (). Na ich znásobenie môžete použiť metódu numpy dot (). Numpy.dot () je bodový produkt matice M1 a M2. Numpy.dot () spracováva 2D polia a vykonáva násobenie matíc.
Príklad:
import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)print(M3)
Výkon:
[[ 93 78][ -65 -310]]
Maticová transpozícia
Transpozícia matice sa počíta zmenou riadkov ako stĺpcov a stĺpcov ako riadkov. Funkciu transpose () z Numpy možno použiť na výpočet transpozície matice.
Príklad:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])M2 = M1.transpose()print(M2)
Výkon:
[[ 3 5 4][ 6 -10 8][ 9 15 12]]
Krájanie matice
Krájanie vám vráti prvky z matice na základe daného počiatočného a koncového indexu.
- Syntax pre krájanie je - [začiatok: koniec]
- Ak nie je uvedený počiatočný index, považuje sa to za 0. Napríklad [: 5] to znamená ako [0: 5].
- Ak koniec neprejde, bude sa brať ako dĺžka poľa.
- Ak má začiatok / koniec záporné hodnoty, bude sa krájanie uskutočňovať od konca poľa.
Predtým, ako začneme pracovať na krájaní na maticu, najskôr pochopíme, ako použiť rez na jednoduché pole.
import numpy as nparr = np.array([2,4,6,8,10,12,14,16])print(arr[3:6]) # will print the elements from 3 to 5print(arr[:5]) # will print the elements from 0 to 4print(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 -2print(arr[:-1]) # will print from end i.e. 0 to -2
Výkon:
[ 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]
Teraz poďme implementovať krájanie na maticu. Ak chcete vykonať krájanie na matici
syntax bude M1 [riadok_štart: riadok_koniec, stĺpec_start: stĺpec]
- Prvý začiatok / koniec bude pre riadok, tj. Pre výber riadkov matice.
- Druhý začiatok / koniec bude pre stĺpec, tj. Pre výber stĺpcov matice.
Matica M1, ktorú budeme používať, je nasledovná:
M1 = np.array([[2, 4, 6, 8, 10],[3, 6, 9, -12, -15],[4, 8, 12, 16, -20],[5, -10, 15, -20, 25]])
K dispozícii sú celkom 4 riadky. Index začína od 0 do 3. 0 -te rade je [2,4,6,8,10], 1 st riadok [3,6,9, -12, -15] nasledovaný 2 nd a 3 rd .
Matica M1 má 5 stĺpcov. Index začína od 0 do 4.V 0 teho stĺpca má hodnoty [2,3,4,5], 1 st stĺpca boli hodnoty [4,6,8, -10] nasledovaný 2 nd , 3 rd , 4 th , a 5. tis .
Tu je príklad ukazujúci, ako získať údaje o riadkoch a stĺpcoch z matice pomocou krájania. V tomto príklade sme tlač 1 st a 2 nd riadok a stĺpcov, chceme, aby prvej, druhej a tretí stĺpec. Na získanie tohto výstupu sme použili: M1 [1: 3, 1: 4]
Príklad:
import numpy as npM1 = 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.
Výkon:
[[ 6 9 -12][ 8 12 16]]
Príklad: Ak chcete vytlačiť všetky riadky a tretie stĺpce
import numpy as npM1 = 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.
Výkon:
[ 8 -12 16 -20]
Príklad: Ak chcete vytlačiť prvý riadok a všetky stĺpce
import numpy as npM1 = 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
Výkon:
[[ 2 4 6 8 10]]
Príklad: Ak chcete vytlačiť prvé tri riadky a prvé 2 stĺpce
import numpy as npM1 = 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])
Výkon:
[[2 4][3 6][4 8]]
Prístup k matici NumPy
Videli sme, ako funguje krájanie. Keď to vezmeme do úvahy, budeme vedieť, ako získať riadky a stĺpce z matice.
Ak chcete vytlačiť riadky matice
V príklade sa vytlačia riadky matice.
Príklad:
import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])print(M1[0]) #first rowprint(M1[1]) # the second rowprint(M1[-1]) # -1 will print the last row
Výkon:
[3 6 9][ 5 -10 15][ 4 8 12]
Ak chcete získať posledný riadok, môžete použiť index alebo -1. Napríklad matica má 3 riadky,
takže M1 [0] vám dá prvý riadok,
M1 [1] vám poskytne druhý riadok
M1 [2] alebo M1 [-1] vám poskytne tretí alebo posledný riadok.
Ak chcete vytlačiť stĺpce matice
import numpy as npM1 = 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 Columnprint(M1[:,3]) # Will print the third Columnprint(M1[:,-1]) # -1 will give you the last column
Výkon:
[2 3 4 5][ 8 -12 16 -20][ 10 -15 -20 25]
Zhrnutie:
- Matica Python je špecializované dvojrozmerné obdĺžnikové pole údajov uložených v riadkoch a stĺpcoch. Údaje v matici môžu byť čísla, reťazce, výrazy, symboly atď. Matica je jednou z dôležitých dátových štruktúr, ktorú je možné použiť v matematických a vedeckých výpočtoch.
- Python nemá priamy spôsob implementácie dátového typu matice. Maticu Pythonu je možné vytvoriť pomocou dátového typu vnoreného zoznamu a pomocou knižnice numpy.
- Pytónová knižnica Numpy pomáha pri riešení polí. Numpy spracuje pole o niečo rýchlejšie v porovnaní so zoznamom.
- Maticová operácia, ktorú je možné vykonať, je sčítanie, odčítanie, násobenie, transpozícia, čítanie riadkov, stĺpcov matice, krájanie matice atď.
- Ak chcete pridať dve matice, môžete použiť numpy.array () a pridať ich pomocou operátora (+).
- Na ich znásobenie môžete použiť metódu numpy dot (). Numpy.dot () je bodový produkt matice M1 a M2. Numpy.dot () spracováva 2D polia a vykonáva násobenie matíc.
- Transpozícia matice sa počíta zmenou riadkov ako stĺpcov a stĺpcov ako riadkov. Funkciu transpose () z Numpy možno použiť na výpočet transpozície matice.
- Krájanie matice vám vráti prvky založené na danom počiatočnom / koncovom indexe.