Python Matrix: Transpose, Multiplication, NumPy Arrays examples

Obsah:

Anonim

Co je to Python Matrix?

Matice Pythonu 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, které lze použít v matematických a vědeckých výpočtech.

V tomto výukovém programu pro Python se naučíte:

  • Co je to Python Matrix?
  • Jak fungují matice Pythonu?
  • Vytvořte matici Pythonu pomocí datového typu vnořeného seznamu
  • Čtení dat uvnitř Python Matrix pomocí seznamu.
  • Příklad 2: Čtení posledního prvku z každého řádku.
  • Příklad 3: Tisk řádků v Matrixu
  • Přidávání matic pomocí vnořeného seznamu
  • Násobení matic pomocí vnořeného seznamu
  • Vytvořte Python Matrix pomocí polí z balíčku Python Numpy
  • Maticová operace pomocí Numpy.Array ()
  • Přístup k matici NumPy

Jak fungují matice Pythonu?

Data uvnitř dvourozměrného pole ve formátu matice vypadají takto:

Krok 1)

Zobrazuje matici 2x2. Má dva řádky a 2 sloupce. Data uvnitř matice jsou čísla. Řádek 1 má hodnoty 2,3 a řádek 2 má hodnoty 4,5. Sloupce, tj. Col1, mají hodnoty 2,4 a col2 mají hodnoty 3,5.

Krok 2)

Zobrazuje matici 2x3. Má dva řádky a tři sloupce. Data uvnitř prvního řádku, tj. Řádek1, má hodnoty 2,3,4 a řádek2 má hodnoty 5,6,7. Sloupce col1 má hodnoty 2,5, col2 má hodnoty 3,6 a col3 má hodnoty 4,7.

Podobně můžete mít svá data uložená uvnitř matice nxn v Pythonu. Na maticovém sčítání, odčítání, násobení atd. Lze provádět mnoho operací.

Python nemá přímý způsob implementace datového typu matice.

Matice pythonu využívá pole a totéž lze implementovat.

  • Vytvořte matici Pythonu pomocí datového typu vnořeného seznamu
  • Vytvořte Python Matrix pomocí polí z balíčku Python Numpy

Vytvořte matici Pythonu pomocí datového typu vnořeného seznamu

V Pythonu jsou pole reprezentována pomocí datového typu seznamu. Nyní tedy použijeme seznam k vytvoření matice pythonu.

Vytvoříme matici 3x3, jak je znázorněno 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]]

Podle matice uvedené výše je typ seznamu s daty matice následující:

M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]

Čtení dat uvnitř Python Matrix pomocí seznamu.

Využ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 matrixprint(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:

-6421

Příklad 3: Tisk řádků v Matrixu

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ý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. Matice zde budou ve formě seznamu. Pracujme na příkladu, který se postará o přidání daných matic.

Matice 1:

M1 = [[8, 14, -6],[12,7,4],[-11,3,21]]

Matice 2:

M2 = [[3, 16, -6],[9,7,-4],[-1,3,13]]

Last inicializuje matici, která uloží výsledek M1 + M2.

Matice 3:

M3 = [[0,0,0],[0,0,0],[0,0,0]]

Příklad: Přidání matic

Chcete-li přidat, matice budou využívat smyčku pro, která bude procházet oběma daný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 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ý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 znásobení matic můžeme použít smyčku for 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 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ýstup:

The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]

Vytvořte Python Matrix pomocí polí z balíčku Python Numpy

Pythonová knihovna Numpy pomáhá vypořádat se s poli. Numpy zpracovává pole o něco rychleji ve srovnání se seznamem.

Abyste mohli s Numpy pracovat, musíte si 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 ve svém kódu použít Numpy, 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í matice pythonu použijeme metodu array () z Numpy.

Příklad: Pole v Numpy vytvoří Python Matrix

import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)

Výstup:

[[ 5 -10 15][ 3 -6 9][ -4 8 12]]

Maticová operace pomocí Numpy.Array ()

Maticovou operací, kterou lze provést, je sčítání, odčítání, násobení, transpozice, čtení řádků, sloupců matice, krájení matice atd. Ve všech příkladech použijeme metodu array ().

Sčítání matice

Abychom provedli přidání na matici, vytvoříme dvě matice pomocí numpy.array () a přidáme je pomocí operátoru (+).

Pří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ýstup:

[[ 12 -12 36][ 16 12 48][ 6 -12 60]]

Odčítání matice

Abychom provedli odčítání na matici, vytvoříme dvě matice pomocí numpy.array () a odečteme je pomocí operátoru (-).

Pří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ýstup:

[[ -6 24 -18][ -6 -32 -18][-20 40 -18]]

Násobení matic

Nejprve vytvoří dvě matice pomocí numpy.arary (). Chcete-li je znásobit, můžete použít metodu numpy dot (). Numpy.dot () je bodový produkt matice M1 a M2. Numpy.dot () zpracovává 2D pole a provádí násobení matic.

Pří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ýstup:

[[ 93 78][ -65 -310]]

Maticová transpozice

Transpozice matice se počítá změnou řádků jako sloupců a sloupců jako řádků. Funkci transpose () z Numpy lze použít k výpočtu transpozice matice.

Příklad:

import numpy as npM1 = 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]]

Krájení matice

Řezání vám vrátí prvky z matice na základě zadaného počátečního / koncového indexu.

  • Syntaxe pro krájení je - [začátek: konec]
  • Pokud počáteční index není uveden, považuje se za 0. Například [: 5], to znamená jako [0: 5].
  • Pokud konec není předán, bude se brát jako délka pole.
  • Pokud má začátek / konec záporné hodnoty, bude řez proveden od konce pole.

Než budeme pracovat na krájení na matici, nejprve pochopíme, jak aplikovat řez 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ý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í pojďme implementovat krájení na matici. Provedení krájení na matici

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, tj. Pro výběr sloupců matice.

Matice M1, kterou použijeme, 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]])

K dispozici jsou celkem 4 řádky. Index začíná od 0 do 3. 0 -té řadě je [2,4,6,8,10], 1 st řádek [3,6,9, -12, -15] následovaný 2 nd a 3 rd .

Matice M1 má 5 sloupců. Index začíná od 0 do 4.V 0 tého sloupce má hodnoty [2,3,4,5], 1 st sloupce byly hodnoty [4,6,8, -10] následovaný 2 nd , 3 rd , 4 th , a 5. th .

Zde je příklad ukazující, jak získat data řádků a sloupců z matice pomocí krájení. V příkladu tiskneme první a druhý řá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 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ýstup:

[[ 6 9 -12][ 8 12 16]]

Příklad: Tisk všech řádků a třetích sloupců

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ýstup:

[ 8 -12 16 -20]

Příklad: Tisk prvního řádku a všech sloupců

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ýstup:

[[ 2 4 6 8 10]]

Příklad: Tisk prvních tří řádků a prvních 2 sloupců

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ýstup:

[[2 4][3 6][4 8]]

Přístup k matici NumPy

Viděli jsme, jak krájení funguje. Vezmeme-li to v úvahu, uděláme, jak získat řádky a sloupce z matice.

Tisk řádků matice

V příkladu se vytisknou řádky matice.

Pří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ý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í řádek,

M1 [1] vám dá druhou řadu

M1 [2] nebo M1 [-1] vám poskytne třetí nebo poslední řádek.

Tisk sloupců 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ýstup:

[2 3 4 5][ 8 -12 16 -20][ 10 -15 -20 25]

Souhrn:

  • Matice Pythonu 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, které lze použít v matematických a vědeckých výpočtech.
  • Python nemá přímý způsob implementace datového typu matice. Matici Pythonu lze vytvořit pomocí datového typu vnořeného seznamu a pomocí knihovny numpy.
  • Pythonová knihovna Numpy pomáhá vypořádat se s poli. Numpy zpracovává pole o něco rychleji ve srovnání se seznamem.
  • Maticovou operací, kterou lze provést, je sčítání, odčítání, násobení, transpozice, čtení řádků, sloupců matice, krájení matice atd.
  • Chcete-li přidat dvě matice, můžete použít numpy.array () a přidat je pomocí operátoru (+).
  • Chcete-li je znásobit, můžete použít metodu numpy dot (). Numpy.dot () je bodový produkt matice M1 a M2. Numpy.dot () zpracovává 2D pole a provádí násobení matic.
  • Transpozice matice se počítá změnou řádků jako sloupců a sloupců jako řádků. Funkci transpose () z Numpy lze použít k výpočtu transpozice matice.
  • Řezání matice vám vrátí prvky založené na daném počátečním / koncovém indexu.