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 PythonS maticovým sčítáním lze provést mnoho operací, tj. sčítání podmnožin.tracování, násobení atd.
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()
Maticová operace, kterou lze provést, je sčítání, odčítánítracnásobení, transpozice, čtení řádků, sloupců matice, řezání matice atd. Ve všech příkladech budeme používat 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]]
Matrix Subtracvání
Pro provedení podřízenéhotracna matici, vytvoříme dvě matice pomocí numpy.array() a subtracpomocí 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.
- Maticová operace, kterou lze provést, je sčítání, odčítánítracnásobení, transpozice, čtení řádků, sloupců matice, řezání 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.


