Python matrica: primjeri transponiranja, množenja, numeričkih nizova

Sadržaj:

Anonim

Što je Python Matrix?

Pythonova matrica je specijalizirani dvodimenzionalni pravokutni niz podataka pohranjenih u retke i stupce. 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 proračunima.

U ovom vodiču za Python naučit ćete:

  • Što je Python Matrix?
  • Kako funkcioniraju Python matrice?
  • Stvorite Python Matrix pomoću ugniježđenog tipa podataka popisa
  • Za čitanje podataka unutar Python Matrixa pomoću popisa.
  • Primjer 2: Za čitanje posljednjeg elementa iz svakog retka.
  • Primjer 3: Za ispis redaka u Matrici
  • Dodavanje matrica pomoću ugniježđenog popisa
  • Množenje matrica pomoću ugniježđenog popisa
  • Stvorite Python matricu pomoću nizova iz paketa Python Numpy
  • Rad matrice pomoću Numpy.Array ()
  • Pristup NumPy matrici

Kako funkcioniraju Python matrice?

Podaci unutar dvodimenzionalnog niza u matričnom formatu izgledaju kako slijedi:

Korak 1)

Prikazuje matricu 2x2. Ima dva reda i 2 stupca. Podaci unutar matrice su brojevi. Redak1 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 2x3. Ima dva reda i tri stupca. Podaci unutar prvog retka, tj. Redak1, imaju vrijednosti 2,3,4, a red2 ima vrijednosti 5,6,7. Stupci col1 imaju vrijednosti 2,5, col2 ima vrijednosti 3,6, a col3 ima vrijednosti 4,7.

Tako slično, možete imati svoje podatke pohranjene unutar nxn matrice u Pythonu. Mnogo se operacija može obaviti na zbrajanju, oduzimanju, množenju, poput matrice, itd.

Python nema jednostavan način za implementaciju matričnog tipa podataka.

Python matrica koristi nizove, a isti se može implementirati.

  • Stvorite Python matricu koristeći tip podataka ugniježđenog popisa
  • Stvorite Python matricu pomoću nizova iz paketa Python Numpy

Stvorite Python Matrix pomoću ugniježđenog tipa podataka popisa

U Pythonu su nizovi predstavljeni pomoću tipa podataka s popisa. Dakle, sada ćemo se služiti popisom za stvaranje python matrice.

Stvorit ćemo matricu 3x3, kao što je prikazano dolje:

  • Matrica ima 3 retka i 3 stupca.
  • Prvi redak u formatu popisa bit će sljedeći: [8,14, -6]
  • Drugi red na popisu bit će: [12,7,4]
  • Treći red na popisu bit će: [-11,3,21]

Matrica unutar popisa sa svim redovima i stupcima prikazana je dolje:

List = [[Row1],[Row2],[Row3]… [RowN]]

Dakle, prema gore navedenoj matrici vrsta popisa s matričnim podacima je sljedeća:

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

Za čitanje podataka unutar Python Matrixa pomoću popisa.

Koristit ćemo matricu definiranu gore. 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 matrixprint(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:

-6421

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 Matrixfor 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 dodati dvije zadane matrice. Ovdje će matrice biti u obliku popisa. Poradimo na primjeru koji će se pobrinuti za dodavanje 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: Dodavanje matrica

Da dodamo, matrice će koristiti for-loop koja će se petljati 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 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)

Izlaz:

The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

Množenje matrica pomoću ugniježđenog popisa

Za umnožavanje matrica možemo koristiti for-loop na obje matrice kako 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 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)

Izlaz:

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

Stvorite Python matricu pomoću nizova iz paketa Python Numpy

Python biblioteka Numpy pomaže u rješavanju nizova. Numpy obrađuje niz malo brže u usporedbi s popisom.

Da biste radili s Numpyem, prvo ga morate instalirati. Slijedite korake dane u nastavku da biste instalirali Numpy.

Korak 1)

Naredba za instalaciju Numpyja je:

pip install NumPy

Korak 2)

Da biste koristili Numpy u svom kodu, morate ga uvesti.

import NumPy

Korak 3)

Numpy također možete uvesti pomoću zamjenskog imena, 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 matrice

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

Izlaz:

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

Rad matrice pomoću Numpy.Array ()

Operacija matrice koja se može izvršiti je zbrajanje, oduzimanje, množenje, transponiranje, čitanje redaka, stupaca matrice, rezanje matrice itd. U svim ćemo primjerima koristiti metodu array ().

Dodavanje matrice

Da bismo izvršili sabiranje na matrici, stvorit ćemo dvije matrice pomoću numpy.array () i dodati ih pomoću (+) operatora.

Primjer:

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)

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 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)

Izlaz:

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

Množenje matrica

Prvo će stvoriti dvije matrice pomoću numpy.arary (). Da biste ih pomnožili, možete se poslužiti metodom numpy dot (). Numpy.dot () je umnožak matrice M1 i M2. Numpy.dot () obrađuje 2D nizove i izvodi množenje matrica.

Primjer:

import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)print(M3)

Izlaz:

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

Transpozicija matrice

Transpozicija matrice izračunava se promjenom redaka kao stupaca i stupaca kao redaka. Funkcija transpose () iz Numpyja može se koristiti za izračunavanje transpozicije matrice.

Primjer:

import numpy as npM1 = 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 datog indeksa početka / kraja.

  • Sintaksa za rezanje je - [početak: kraj]
  • Ako indeks početka nije dat, smatra se 0. Na primjer [: 5], znači kao [0: 5].
  • Ako kraj nije prošao, trebat će kao dužina niza.
  • Ako početak / kraj ima negativne vrijednosti, rezanje će se izvršiti s kraja niza.

Prije nego što započnemo s rezanjem na matrici, prvo shvatimo kako primijeniti rez na jednostavni niz.

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

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 ćemo primijeniti rezanje na matrici. 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 redak, 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]])

Ukupno ima 4 reda. Indeks počinje od 0 do 3. 0 -tog reda je [2,4,6,8,10], 1 st red je [3,6,9, -12, -15] zatim 2 II i 3 rd .

Matrica M1 ima 5 stupaca. Indeks počinje od 0 do 0 4.The th stupcu ima vrijednosti [2,3,4,5], 1 st stupci su vrijednosti [4,6,8, -10] zatim 2 drugom , 3 III , 4 -og , i 5 th .

Evo primjera koji pokazuje kako dobiti podatke o redovima i stupcima iz matrice pomoću rezanja. U primjeru ispisujemo prvi i drugi redak, a za stupce želimo prvi, drugi i treći stupac. Da bismo dobili taj izlaz koristili smo: M1 [1: 3, 1: 4]

Primjer:

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.

Izlaz:

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

Primjer: Za ispis svih redaka i trećih stupaca

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.

Izlaz:

[ 8 -12 16 -20]

Primjer: Za ispis prvog retka i svih stupaca

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

Izlaz:

[[ 2 4 6 8 10]]

Primjer: Za ispis prva tri retka i prva 2 stupca

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])

Izlaz:

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

Pristup NumPy matrici

Vidjeli smo kako rezanje djeluje. Uzimajući to u obzir, mi ćemo kako izvući retke i stupce iz matrice.

Za ispis redaka matrice

U primjeru će se ispisati redovi matrice.

Primjer:

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

Izlaz:

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

Da biste dobili zadnji redak, možete upotrijebiti indeks ili -1. Na primjer, matrica ima 3 reda,

pa će vam M1 [0] dati prvi red,

M1 [1] dat će vam drugi red

M1 [2] ili M1 [-1] dat će vam treći ili posljednji red.

Za ispis stupaca matrice

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

Izlaz:

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

Sažetak:

  • Pythonova matrica je specijalizirani dvodimenzionalni pravokutni niz podataka pohranjenih u retke i stupce. 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 proračunima.
  • Python nema jednostavan način za implementaciju matričnog tipa podataka. Python matrica se može stvoriti pomoću ugniježđenog tipa podataka popisa i pomoću numpy knjižnice.
  • Python biblioteka Numpy pomaže u rješavanju nizova. Numpy obrađuje niz malo brže u usporedbi s popisom.
  • Operacija matrice koja se može izvršiti je zbrajanje, oduzimanje, množenje, transponiranje, čitanje redaka, stupaca matrice, rezanje matrice itd.
  • Da biste dodali dvije matrice, možete upotrijebiti numpy.array () i dodati ih pomoću (+) operatora.
  • Da biste ih pomnožili, možete se poslužiti metodom numpy dot (). Numpy.dot () je umnožak matrice M1 i M2. Numpy.dot () obrađuje 2D nizove i izvodi množenje matrica.
  • Transpozicija matrice izračunava se promjenom redaka kao stupaca i stupaca kao redaka. Funkcija transpose () iz Numpyja može se koristiti za izračunavanje transpozicije matrice.
  • Rezanje matrice vratit će vam elemente na temelju datog indeksa početka / kraja.