Python Matice: příklady transpozice, násobení, numerických polí
Co je to Python Matice?
A Python matice je specializované dvourozměrné obdélníkové pole dat uložených v řádcích a sloupcích. Data v matici mohou být čísla, řetězce, výrazy, symboly atd. Matice je jednou z důležitých datových struktur, kterou lze použít v matematických a vědeckých výpočtech.
Jak Python Matice fungují?
Data uvnitř dvourozměrného pole v maticovém formátu vypadají následovně:
Krok 1) Ukazuje matici 2×2. Má dva řádky a 2 sloupce. Data uvnitř matice jsou čísla. Řádek1 má hodnoty 2,3 a řádek2 má hodnoty 4,5. Sloupce, tj. col1, mají hodnoty 2,4 a sloupec2 má hodnoty 3,5.
Krok 2) Ukazuje matici 2×3. Má dva řádky a tři sloupce. Data v prvním řádku, tj. řádek1, mají hodnoty 2,3,4 a řádek2 má hodnoty 5,6,7. Sloupce col1 mají hodnoty 2,5, col2 mají hodnoty 3,6 a col3 mají hodnoty 4,7.
Podobně můžete mít data uložená uvnitř matice nxn Python. S maticovým sčítáním, odčítáním, násobením atd. lze provádět mnoho operací.
Python nemá přímočarý způsob implementace datového typu matice.
Matice pythonu využívá pole a totéž lze implementovat.
- Vytvořit Python Matice pomocí datového typu vnořeného seznamu
- Vytvořit Python Matice pomocí Arrays from Python Nudný balíček
Vytvořit Python Matice pomocí datového typu vnořeného seznamu
In Python, pole jsou reprezentována pomocí datového typu seznamu. Nyní tedy použijeme seznam k vytvoření pythonovské matice.
Vytvoříme matici 3×3, jak je uvedeno níže:
- Matice má 3 řádky a 3 sloupce.
- První řádek ve formátu seznamu bude následující: [8,14,-6]
- Druhý řádek v seznamu bude: [12,7,4]
- Třetí řádek v seznamu bude: [-11,3,21]
Matice uvnitř seznamu se všemi řádky a sloupci je uvedena níže:
List = [[Row1], [Row2], [Row3] ... [RowN]]
Takže podle výše uvedené matice je typ seznamu s daty matice následující:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Pro čtení dat uvnitř Python Matice pomocí seznamu.
Použijeme výše definovanou matici. Příklad načte data, vytiskne matici, zobrazí poslední prvek z každého řádku.
Příklad: Tisk matice
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Výstup:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Příklad 2: Čtení posledního prvku z každého řádku
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ýstup:
-6 4 21
Příklad 3: Tisk řádků v matici
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])
Výstup:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
Přidávání matic pomocí vnořeného seznamu
Můžeme snadno přidat dvě dané matice. Matriky zde budou ve formě seznamu. Pojďme pracovat na příkladu, který se postará o sečtení daných matic.
Matice 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
Matrix 2:
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
Last inicializuje matici, která uloží výsledek M1 + M2.
Matrix 3:
M3 = [[0,0,0], [0,0,0], [0,0,0]]
Příklad: Přidání matic
Kromě toho budou matice využívat smyčku for, která bude procházet oběma uvedenými maticemi.
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)
Výstup:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Násobení matic pomocí vnořeného seznamu
K vynásobení matic můžeme použít for-loop na obou maticích, jak je znázorněno v kódu níže:
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)
Výstup:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
Vytvořit Python Matice pomocí Arrays from Python Nudný balíček
Python knihovna Numpy pomáhá vypořádat se s poli. Numpy zpracovává pole o něco rychleji ve srovnání se seznamem.
Chcete-li pracovat s Numpy, musíte jej nejprve nainstalovat. Při instalaci Numpy postupujte podle níže uvedených kroků.
Krok 1) Příkaz k instalaci Numpy je:
pip install NumPy
Krok 2) Chcete-li použít Numpy ve svém kódu, musíte jej importovat.
import NumPy
Krok 3) Numpy můžete také importovat pomocí aliasu, jak je znázorněno níže:
import NumPy as np
K vytvoření pythonovské matice použijeme metodu array() z Numpy.
Příklad: Pole v Numpy k vytvoření Python Matice
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Výstup:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
Matice Operapomocí Numpy.Array()
Operace s maticí, kterou lze provést, je sčítání, odčítání, násobení, transpozice, čtení řádků, sloupců matice, dělení matice atd. Ve všech příkladech použijeme metodu array().
Sčítání matice
Chcete-li provést sčítání na matici, vytvoříme dvě matice pomocí numpy.array() a přidáme je pomocí operátoru (+).
Příklad:
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)
Výstup:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
Odčítání matice
Chcete-li provést odečítání na matici, vytvoříme dvě matice pomocí numpy.array() a odečteme je pomocí operátoru (-).
Příklad:
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)
Výstup:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
Maticové násobení
Nejprve vytvoříte dvě matice pomocí numpy.arary(). Chcete-li je vynásobit, můžete použít metodu numpy dot(). Numpy.dot() je bodový součin matice M1 a M2. Numpy.dot() zpracovává 2D pole a provádí násobení matic.
Příklad:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Výstup:
[[ 93 78] [ -65 -310]]
Matrix Transpose
Transpozice matice se vypočítá změnou řádků jako sloupců a sloupců jako řádků. K výpočtu transpozice matice lze použít funkci transpose() z Numpy.
Příklad:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Výstup:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
Rozřezání Matrixu
Slicing vám vrátí prvky z matice na základě daného počátečního/koncového indexu.
- Syntaxe pro krájení je – [start:end]
- Pokud není uveden počáteční index, je považován za 0. Například [:5], to znamená jako [0:5].
- Pokud konec není předán, bude to trvat jako délka pole.
- Pokud má začátek/konec záporné hodnoty, bude krájení provedeno od konce pole.
Než začneme pracovat na dělení na matici, nejprve pochopíme, jak aplikovat řez na jednoduché pole.
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
Výstup:
[ 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]
Nyní implementujme krájení na matrici. K provádění krájení na matrici
syntaxe bude M1[row_start:row_end, col_start:col_end]
- První začátek/konec bude pro řádek, tj. pro výběr řádků matice.
- Druhý začátek/konec bude pro sloupec, tedy pro výběr sloupců matice.
Matice M1, kterou budeme používat, je následující:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
Celkem jsou 4 řady. Index začíná od 0 do 3. 0th řádek je [2,4,6,8,10], 1st řádek je [3,6,9,-12,-15] následovaný 2nd a 3rd.
Matice M1 má 5 sloupců. Index začíná od 0 do 4. 0th sloupec má hodnoty [2,3,4,5], 1st sloupce mají hodnoty [4,6,8,-10] následované 2nd, 3rd, 4tha 5th.
Zde je příklad ukazující, jak získat data řádků a sloupců z matice pomocí řezání. V příkladu tiskneme 1st a 2nd řádek a pro sloupce chceme první, druhý a třetí sloupec. K získání tohoto výstupu jsme použili: M1[1:3, 1:4]
Příklad:
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.
Výstup:
[[ 6 9 -12] [ 8 12 16]]
Příklad: Chcete-li vytisknout všechny řádky a třetí sloupce
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.
Výstup:
[ 8 -12 16 -20]
Příklad: Chcete-li vytisknout první řádek a všechny sloupce
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
Výstup:
[[ 2 4 6 8 10]]
Příklad: Chcete-li vytisknout první tři řádky a první 2 sloupce
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])
Výstup:
[[2 4] [3 6] [4 8]]
Přístup k NumPy Matrix
Viděli jsme, jak funguje krájení. Když to vezmeme v úvahu, zjistíme, jak získat řádky a sloupce z matice.
Tisk řádků matice
V příkladu se vytisknou řádky matice.
Příklad:
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
Výstup:
[3 6 9] [ 5 -10 15] [ 4 8 12]
Chcete-li získat poslední řádek, můžete použít index nebo -1. Například matice má 3 řádky,
takže M1[0] vám dá první řadu,
M1[1] vám poskytne druhou řadu
M1[2] nebo M1[-1] vám poskytne třetí řádek nebo poslední řádek.
Tisk sloupců matice
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
Výstup:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
Shrnutí
- A Python matice je specializované dvourozměrné obdélníkové pole dat uložených v řádcích a sloupcích. Data v matici mohou být čísla, řetězce, výrazy, symboly atd. Matice je jednou z důležitých datových struktur, kterou lze použít v matematických a vědeckých výpočtech.
- Python nemá přímočarý způsob implementace datového typu matice. Python matici lze vytvořit pomocí datového typu vnořeného seznamu a pomocí knihovny numpy.
- Python knihovna Numpy pomáhá vypořádat se s poli. Numpy zpracovává pole o něco rychleji ve srovnání se seznamem.
- Operace s maticí, kterou lze provést, je sčítání, odčítání, násobení, transpozice, čtení řádků, sloupců matice, dělení matice atd.
- Chcete-li přidat dvě matice, můžete použít numpy.array() a přidat je pomocí operátoru (+).
- Chcete-li je vynásobit, můžete použít metodu numpy dot(). Numpy.dot() je bodový součin matice M1 a M2. Numpy.dot() zpracovává 2D pole a provádí násobení matic.
- Transpozice matice se vypočítá změnou řádků jako sloupců a sloupců jako řádků. K výpočtu transpozice matice lze použít funkci transpose() z Numpy.
- Rozdělení matice vám vrátí prvky na základě daného počátečního/koncového indexu.