Python Matrica: Transponiranje, Množenje, NumPy nizovi

⚡ Pametni sažetak

A Python Matrica je dvodimenzionalni niz podataka u retcima i stupcima, koji se koristi u matematici i znanosti. Ovdje ćete naučiti stvarati matrice s ugniježđenim listama i NumPy-jem te izvoditi zbrajanje, množenje, transponiranje i rezanje.

  • 🔢 Što je to: Matrica je dvodimenzionalni niz podataka u retcima i stupcima.
  • 📋 Ugniježđene liste: Python Matrice se mogu izgraditi kao lista lista.
  • 🧮 NumPy nizovi: numpy.array() stvara brže matrice bogate značajkama.
  • Operaticije: Dodaj, podtract i množite matrice operatorima ili numpy.dot().
  • 🔄 Transponiranje i rezanje: transpose() zamjenjuje retke i stupce; slics odabire podmatrice.
  • 🤖 Pomoć umjetne inteligencije: Alati umjetne inteligencije poput Copilota trenutno generiraju matrični i NumPy kod.

Python Distributori

Što je Python Matrica?

A Python matrica je specijalizirani dvodimenzionalni pravokutni niz podataka pohranjenih u redovima i stupcima. 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 izračunima.

Kako Python Matrice rade?

Podaci unutar dvodimenzionalnog niza u matričnom formatu izgledaju ovako:

Python Distributori

Korak 1) Prikazuje matricu 2×2. Ima dva retka i 2 stupca. Podaci unutar matrice su brojevi. Red1 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 2×3. Ima dva retka i tri stupca. Podaci unutar prvog reda, tj. row1, imaju vrijednosti 2,3,4, a row2 ima vrijednosti 5,6,7. Stupci col1 imaju vrijednosti 2,5, col2 imaju vrijednosti 3,6, a col3 imaju vrijednosti 4,7.

Slično tome, možete imati svoje podatke pohranjene unutar nxn matrice PythonMnogo operacija se može izvršiti na zbrajanju sličnom matrici, pod-traccija, množenje itd.

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

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

  • Napravite Python Matrica koja koristi tip podataka ugniježđenog popisa
  • stvoriti Python Matrica koja koristi nizove iz Python Numpy paket

stvoriti Python Matrica koja koristi tip podataka ugniježđenog popisa

In Python, nizovi su predstavljeni pomoću tipa podataka liste. Dakle, sada ćemo iskoristiti popis za stvaranje python matrice.

Napravit ćemo matricu 3×3, kao što je prikazano u nastavku:

stvoriti Python Matrica pomoću ugniježđenog popisa

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

Matrica unutar popisa sa svim redcima i stupcima je kao što je prikazano u nastavku:

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

Dakle, prema gore navedenoj matrici, vrsta popisa s podacima matrice je sljedeća:

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

Za čitanje podataka unutra Python Matrica pomoću liste.

Koristit ćemo se gore definiranom matricom. 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 matrix
print(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:

-6
4
21

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 Matrix
for 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 zbrojiti dvije zadane matrice. Matrice će ovdje biti u obliku liste. Poradimo na primjeru koji će se pobrinuti za zbrajanje 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: zbrajanje matrica

Da dodamo, matrice će koristiti for-petlju koja će prolaziti 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 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)

Izlaz:

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

Množenje matrica korištenjem ugniježđene liste

Za množenje matrica možemo upotrijebiti for-petlju na obje matrice kao što 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 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)

Izlaz:

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

stvoriti Python Matrica koja koristi nizove iz Python Numpy paket

Python biblioteka Numpy pomaže u radu s nizovima. Numpy obrađuje niz malo brže u usporedbi s popisom.

Da biste radili s Numpyjem, prvo ga morate instalirati. Slijedite dolje navedene korake za instalaciju Numpyja.

Korak 1) Naredba za instaliranje Numpyja je:

pip install NumPy

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

import NumPy

Korak 3) Također možete uvesti Numpy koristeći alias, 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 Distributori

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

Izlaz:

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

Distributori Operacija pomoću Numpy.Array()

Matrična operacija koja se može izvršiti je zbrajanje, oduzimanjetraccija, množenje, transpozicija, čitanje redaka, stupaca matrice, rezanje matrice itd. U svim primjerima koristit ćemo metodu array().

Zbrajanje matrica

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

Primjer:

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)

Izlaz:

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

Matrix SubtracANJE

Za izvođenje podnaslovatracciju na matrici, kreirat ćemo dvije matrice koristeći numpy.array() i subtract ih pomoću operatora (-).

Primjer:

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)

Izlaz:

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

Množenje matrice

Prvo će stvoriti dvije matrice pomoću numpy.arary(). Da biste ih pomnožili, možete koristiti metodu numpy dot(). Numpy.dot() je točkasti umnožak matrice M1 i M2. Numpy.dot() rukuje 2D nizovima i izvodi matrična množenja.

Primjer:

import numpy as np

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

Izlaz:

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

Transponiranje matrice

Transponiranje matrice se izračunava mijenjanjem redaka u stupce i stupaca u retke. Funkcija transpose() iz Numpyja može se koristiti za izračunavanje transponiranja matrice.

Primjer:

import numpy as np

M1 = 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 danog početnog/krajnjeg indeksa.

  • Sintaksa za rezanje je – [početak:kraj]
  • Ako početni indeks nije dan, smatra se da je 0. Na primjer [:5], to znači kao [0:5].
  • Ako kraj nije proslijeđen, uzet će se kao duljina niza.
  • Ako početak/kraj ima negativne vrijednosti, rezanje će se izvršiti od kraja niza.

Prije nego počnemo raditi na rezanju na matrici, prvo ćemo razumjeti kako primijeniti rezanje na jednostavan niz.

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

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 implementirajmo rezanje na matricu. 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 red, 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]])

Ima ukupno 4 reda. Indeks počinje od 0 do 3. 0th redak je [2,4,6,8,10], 1st red je [3,6,9,-12,-15] nakon kojeg slijedi 2nd i 3rd.

Matrica M1 ima 5 stupaca. Indeks počinje od 0 do 4. 0th stupac ima vrijednosti [2,3,4,5], 1st stupci imaju vrijednosti [4,6,8,-10] iza kojih slijedi 2nd, 3rd, 4th, i 5th.

Ovdje je primjer koji pokazuje kako dobiti podatke o recima i stupcima iz matrice pomoću rezanja. U primjeru ispisujemo 1st i 2nd redak, a za stupce želimo prvi, drugi i treći stupac. Da bismo dobili taj rezultat koristili smo: M1[1:3, 1:4]

Primjer:

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.

Izlaz:

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

Primjer : Za ispis svih redaka i trećih stupaca

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.

Izlaz:

[  8 -12  16 -20]

Primjer: Za ispis prvog reda i svih stupaca

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

Izlaz:

[[ 2  4  6  8 10]]

Primjer: Za ispis prva tri retka i prva 2 stupca

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

Izlaz:

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

Pristup NumPy Matrixu

Vidjeli smo kako funkcionira rezanje. Uzimajući to u obzir, vidjet ćemo kako dobiti retke i stupce iz matrice.

Za ispis redaka matrice

U primjeru ćemo ispisati redove matrice.

Primjer:

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

Izlaz:

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

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

tako da će vam M1[0] dati prvi red,

M1[1] će vam dati drugi red

M1[2] ili M1[-1] će vam dati treći red ili zadnji red.

Za ispis stupaca matrice

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

Izlaz:

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

Pitanja i odgovori

Matrica je dvodimenzionalni pravokutni niz podataka raspoređenih u retke i stupce. Python nema ugrađeni tip matrice, pa koristite ugniježđene liste ili biblioteku NumPy.

Izradite matricu kao ugniježđenu listu, poput [[8, 14, -6], [12, 7, 4]], ili pomoću numpy.array() za bržu i moćniju matricu koja podržava ugrađene operacije.

NumPy obrađuje nizove brže od običnih popisa i nudi ugrađene matrične operacije poput zbrajanja, skalarnog produkta, transponiranja i rezanja, čineći matrični kod kraćim i učinkovitijim.

Za pravo množenje matrica koristite numpy.dot(M1, M2) ili M1.dot(M2). Operatori plus i zvjezdica na NumPy nizovima umjesto toga izvode zbrajanje i množenje po elementima.

Pozovite metodu transpose() na NumPy polju, kao što je M1.transpose(). Ona zamjenjuje retke i stupce, tako da se element iz retka i, stupca j pomiče u redak j, stupac i.

AI asistenti poput GitHub Copilota automatski dovršavaju NumPy kod polja, generiraju matrične operacije poput skalarnih produkata i transpozicija te objašnjavaju sintaksu rezanja dok pišete Python.

Da. Alati pokretani umjetnom inteligencijom mogu automatizirati pisanje NumPy cjevovoda, odabrati učinkovite vektorizirane operacije nad petljama i generirati kod za zadatke linearne algebre poput rješavanja sustava jednadžbi.

Koristite M1[početak_reda:kraj_reda, početak_stupca:kraj_stupca] za odabir podmatrice. Izostavljanjem početka ili kraja koriste se granice polja, a negativni indeksi broje se od kraja.

Sažmite ovu objavu uz: