Python Matrice: Exemple de transpunere, multiplicare, matrice NumPy

Ce Este Python Matrice?

A Python matricea este o matrice dreptunghiularฤƒ bidimensionalฤƒ specializatฤƒ de date stocate รฎn rรขnduri ศ™i coloane. Datele dintr-o matrice pot fi numere, ศ™iruri de caractere, expresii, simboluri etc. Matricea este una dintre structurile de date importante care pot fi utilizate รฎn calcule matematice ศ™i ศ™tiinศ›ifice.

Cum Python Matricele funcศ›ioneazฤƒ?

Datele din interiorul matricei bidimensionale รฎn format matrice aratฤƒ dupฤƒ cum urmeazฤƒ:

Python Matrice

Pas 1) Aratฤƒ o matrice 2ร—2. Are douฤƒ rรขnduri ศ™i 2 coloane. Datele din interiorul matricei sunt numere. Rรขndul1 are valorile 2,3, iar rรขndul2 are valorile 4,5. Coloanele, adicฤƒ col1, au valorile 2,4, iar col2 are valorile 3,5.

Pas 2) Aratฤƒ o matrice 2ร—3. Are douฤƒ rรขnduri ศ™i trei coloane. Datele din primul rรขnd, adicฤƒ rรขndul1, au valorile 2,3,4, iar rรขndul2 are valorile 5,6,7. Coloanele col1 are valorile 2,5, col2 are valorile 3,6 ศ™i col3 are valorile 4,7.

Deci, รฎn mod similar, puteศ›i avea datele stocate รฎn matricea nxn PythonO mulศ›ime de operaศ›ii pot fi efectuate pe o adunare de tip matrice, subtracศ›iune, รฎnmulศ›ire etc.

Python nu are o modalitate simplฤƒ de a implementa un tip de date matrice.

Matricea Python foloseศ™te matrice ศ™i acelaศ™i lucru poate fi implementat.

  • Crearea unei Python Matrice folosind tipul de date din listฤƒ imbricatฤƒ
  • Creazฤƒ Python Matrice folosind Arrays from Python Pachet Numpy

Creazฤƒ Python Matrice folosind un tip de date cu listฤƒ imbricatฤƒ

In Python, tablourile sunt reprezentate folosind tipul de date listฤƒ. Deci acum vom folosi lista pentru a crea o matrice python.

Vom crea o matrice 3ร—3, dupฤƒ cum se aratฤƒ mai jos:

Creazฤƒ Python Matrice folosind o listฤƒ imbricatฤƒ

  • Matricea are 3 rรขnduri ศ™i 3 coloane.
  • Primul rรขnd รฎntr-un format de listฤƒ va fi dupฤƒ cum urmeazฤƒ: [8,14,-6]
  • Al doilea rรขnd dintr-o listฤƒ va fi: [12,7,4]
  • Al treilea rรขnd dintr-o listฤƒ va fi: [-11,3,21]

Matricea din interiorul unei liste cu toate rรขndurile ศ™i coloanele este aศ™a cum se aratฤƒ mai jos:

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

Deci, conform matricei enumerate mai sus, tipul de listฤƒ cu datele matricei este dupฤƒ cum urmeazฤƒ:

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

Pentru a citi datele din interior Python Matrice folosind o listฤƒ.

Vom folosi matricea definitฤƒ mai sus. Exemplul va citi datele, va imprima matricea, va afiศ™a ultimul element din fiecare rรขnd.

Exemplu: Pentru a imprima matricea

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

#To print the matrix
print(M1)

ieศ™ire:

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

Exemplul 2: Pentru a citi ultimul element din fiecare rรขnd

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

ieศ™ire:

-6
4
21

Exemplul 3: Pentru a imprima rรขndurile din Matrice

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

ieศ™ire:

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

Adฤƒugarea de matrici utilizรขnd lista imbricatฤƒ

Putem adฤƒuga cu uศ™urinศ›ฤƒ douฤƒ matrici date. Matricele de aici vor fi sub formฤƒ de listฤƒ. Sฤƒ lucrฤƒm la un exemplu care va avea grijฤƒ sฤƒ adฤƒugฤƒm matricele date.

Matricea 1:

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

Matricea 2:

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

Last va iniศ›ializa o matrice care va stoca rezultatul M1 + M2.

Matricea 3:

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

Exemplu: Adฤƒugarea de matrici

Pentru a adฤƒuga, matricele vor folosi o buclฤƒ for care va trece prin ambele matrice date.

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)

ieศ™ire:

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

รŽnmulศ›irea matricelor folosind Lista imbricatฤƒ

Pentru a multiplica matricele, putem folosi bucla for pe ambele matrice, aศ™a cum se aratฤƒ รฎn codul de mai jos:

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)

ieศ™ire:

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

Creazฤƒ Python Matrice folosind Arrays from Python Pachet Numpy

Biblioteca python Numpy ajutฤƒ la tratarea matricelor. Numpy proceseazฤƒ o matrice puศ›in mai rapid รฎn comparaศ›ie cu lista.

Pentru a lucra cu Numpy, trebuie sฤƒ รฎl instalaศ›i mai รฎntรขi. Urmaศ›i paศ™ii de mai jos pentru a instala Numpy.

Pas 1) Comanda pentru a instala Numpy este:

pip install NumPy

Pas 2) Pentru a utiliza Numpy รฎn codul dvs., trebuie sฤƒ รฎl importaศ›i.

import NumPy

Pas 3) De asemenea, puteศ›i importa Numpy folosind un alias, aศ™a cum se aratฤƒ mai jos:

import NumPy as np

Vom folosi metoda array() de la Numpy pentru a crea o matrice python.

Exemplu: Matrice รฎn Numpy de creat Python Matrice

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

ieศ™ire:

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

Matrice Operaศ›ine folosind Numpy.Array()

Operaศ›ia cu matricea care poate fi efectuatฤƒ este adunarea, subducศ›iuneatracศ›iune, รฎnmulศ›ire, transpunere, citirea rรขndurilor, coloanelor unei matrice, felierea matricei etc. รŽn toate exemplele, vom folosi o metodฤƒ array().

Adฤƒugarea matricei

Pentru a efectua adฤƒugarea pe matrice, vom crea douฤƒ matrice folosind numpy.array() ศ™i le vom adฤƒuga folosind operatorul (+).

Exemplu:

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)

ieศ™ire:

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

Matrix SubtracTION

Pentru a efectua subtracศ›iune pe matrice, vom crea douฤƒ matrici folosind numpy.array() ศ™i subtracfolosind operatorul (-).

Exemplu:

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)

ieศ™ire:

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

รŽnmulศ›irea matricealฤƒ

Mai รฎntรขi se vor crea douฤƒ matrici folosind numpy.arary(). Pentru a le multiplica voinศ›a, puteศ›i folosi metoda numpy dot(). Numpy.dot() este produsul scalar al matricei M1 ศ™i M2. Numpy.dot() gestioneazฤƒ tablourile 2D ศ™i efectueazฤƒ รฎnmulศ›iri de matrice.

Exemplu:

import numpy as np

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

ieศ™ire:

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

Transpunerea matricei

Se calculeazฤƒ transpunerea unei matrice, prin schimbarea rรขndurilor ca coloane ศ™i coloanelor ca rรขnduri. Funcศ›ia transpose() din Numpy poate fi utilizatฤƒ pentru a calcula transpunerea unei matrice.

Exemplu:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])
M2 = M1.transpose()

print(M2)

ieศ™ire:

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

Tฤƒierea unei matrice

Tฤƒierea vฤƒ va returna elementele din matrice pe baza indexului de รฎnceput / sfรขrศ™it dat.

  • Sintaxa pentru feliere este โ€“ [start:end]
  • Dacฤƒ indicele de รฎnceput nu este dat, acesta este considerat 0. De exemplu [:5], รฎnseamnฤƒ ca [0:5].
  • Dacฤƒ sfรขrศ™itul nu este trecut, acesta va lua ca lungime a matricei.
  • Dacฤƒ รฎnceputul/sfรขrศ™itul are valori negative, tฤƒierea se va face de la sfรขrศ™itul matricei.

รŽnainte de a lucra la slice pe o matrice, sฤƒ รฎnศ›elegem mai รฎntรขi cum sฤƒ aplicฤƒm slice pe o matrice simplฤƒ.

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

ieศ™ire:

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

Acum sฤƒ implementฤƒm felierea pe matrice. Pentru a efectua tฤƒierea pe o matrice

sintaxa va fi M1[row_start:row_end, col_start:col_end]

  • Primul รฎnceput/sfรขrศ™it va fi pentru rรขnd, adicฤƒ pentru a selecta rรขndurile matricei.
  • Al doilea รฎnceput/sfรขrศ™it va fi pentru coloanฤƒ, adicฤƒ pentru a selecta coloanele matricei.

Matricea M1 pe care o vom folosi este urmฤƒtoarea:

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])

Sunt รฎn total 4 rรขnduri. Indicele รฎncepe de la 0 la 3. 0th rรขndul este [2,4,6,8,10], 1st rรขndul este [3,6,9,-12,-15] urmat de 2nd ศ™i 3rd.

Matricea M1 are 5 coloane. Indicele รฎncepe de la 0 la 4. 0th coloana are valorile [2,3,4,5], 1st coloanele au valorile [4,6,8,-10] urmate de 2nd, 3rd, 4th, ศ™i 5th.

Iatฤƒ un exemplu care aratฤƒ cum sฤƒ obศ›ineศ›i datele de rรขnduri ศ™i coloane din matrice folosind tฤƒierea. รŽn exemplu, tipฤƒrim 1st ศ™i 2nd rรขnd, iar pentru coloane, dorim prima, a doua ศ™i a treia coloanฤƒ. Pentru a obศ›ine acea ieศ™ire am folosit: M1[1:3, 1:4]

Exemplu:

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.

ieศ™ire:

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

Exemplu: pentru a tipฤƒri toate rรขndurile ศ™i a treia coloanฤƒ

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.

ieศ™ire:

[  8 -12  16 -20]

Exemplu: pentru a imprima primul rรขnd ศ™i toate coloanele

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

ieศ™ire:

[[ 2  4  6  8 10]]

Exemplu: pentru a tipฤƒri primele trei rรขnduri ศ™i primele 2 coloane

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

ieศ™ire:

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

Accesarea NumPy Matrix

Am vฤƒzut cum funcศ›ioneazฤƒ tฤƒierea. Luรขnd รฎn considerare acest lucru, vom vedea cum sฤƒ obศ›inem rรขndurile ศ™i coloanele din matrice.

Pentru a imprima rรขndurile matricei

รŽn exemplu se vor imprima rรขndurile matricei.

Exemplu:

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

ieศ™ire:

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

Pentru a obศ›ine ultimul rรขnd, puteศ›i folosi indexul sau -1. De exemplu, matricea are 3 rรขnduri,

deci M1[0] vฤƒ va oferi primul rรขnd,

M1[1] vฤƒ va oferi al doilea rรขnd

M1[2] sau M1[-1] vฤƒ va oferi al treilea rรขnd sau ultimul rรขnd.

Pentru a imprima coloanele matricei

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

ieศ™ire:

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

Rezumat

  • A Python matricea este o matrice dreptunghiularฤƒ bidimensionalฤƒ specializatฤƒ de date stocate รฎn rรขnduri ศ™i coloane. Datele dintr-o matrice pot fi numere, ศ™iruri de caractere, expresii, simboluri etc. Matricea este una dintre structurile de date importante care pot fi utilizate รฎn calcule matematice ศ™i ศ™tiinศ›ifice.
  • Python nu are o modalitate simplฤƒ de a implementa un tip de date matrice. Python matricea poate fi creatฤƒ folosind un tip de date cu listฤƒ imbricatฤƒ ศ™i folosind biblioteca numpy.
  • Biblioteca python Numpy ajutฤƒ la tratarea matricelor. Numpy proceseazฤƒ o matrice puศ›in mai rapid รฎn comparaศ›ie cu lista.
  • Operaศ›ia cu matricea care poate fi efectuatฤƒ este adunarea, subducศ›iuneatracศ›iune, รฎnmulศ›ire, transpunere, citirea rรขndurilor, coloanelor unei matrice, felierea matricei etc.
  • Pentru a adฤƒuga douฤƒ matrice, puteศ›i folosi numpy.array() ศ™i le puteศ›i adฤƒuga folosind operatorul (+).
  • Pentru a le multiplica will, puteศ›i folosi metoda numpy dot(). Numpy.dot() este produsul scalar al matricei M1 ศ™i M2. Numpy.dot() gestioneazฤƒ tablourile 2D ศ™i efectueazฤƒ รฎnmulศ›iri de matrice.
  • Transpunerea unei matrice se calculeazฤƒ prin schimbarea rรขndurilor ca coloane ศ™i coloanelor ca rรขnduri. Funcศ›ia transpose() din Numpy poate fi utilizatฤƒ pentru a calcula transpunerea unei matrice.
  • Tฤƒierea unei matrice vฤƒ va returna elementele pe baza indexului de รฎnceput / sfรขrศ™it dat.

Rezumaศ›i aceastฤƒ postare cu: