Python Matrix: Eksempler på Transponering, Multiplikation, NumPy Arrays

Hvad er Python Matrix?

A Python matrix er en specialiseret todimensional rektangulær matrix af data, der er gemt i rækker og kolonner. Dataene i en matrix kan være tal, strenge, udtryk, symboler osv. Matrix er en af ​​de vigtige datastrukturer, som kan bruges i matematiske og videnskabelige beregninger.

Hvordan Python Virker matricer?

Dataene inde i det todimensionelle array i matrixformat ser ud som følger:

Python Matrix

Trin 1) Det viser en 2×2 matrix. Den har to rækker og 2 kolonner. Dataene inde i matrixen er tal. Række1 har værdierne 2,3, og række2 har værdierne 4,5. Kolonnerne, dvs. col1, har værdierne 2,4, og col2 har værdierne 3,5.

Trin 2) Det viser en 2×3 matrix. Den har to rækker og tre kolonner. Dataene i den første række, dvs. række1, har værdierne 2,3,4, og række2 har værdierne 5,6,7. Kolonnerne col1 har værdierne 2,5, col2 har værdierne 3,6, og col3 har værdierne 4,7.

Så på samme måde kan du have dine data gemt inde i nxn-matrixen Python. En masse operationer kan udføres på en matrixlignende addition, subtraktion, multiplikation osv.

Python har ikke en ligetil måde at implementere en matrixdatatype på.

Python-matricen gør brug af arrays, og det samme kan implementeres.

  • Opret en Python Matrix ved hjælp af den indlejrede listedatatype
  • Opret Python Matrix ved hjælp af Arrays fra Python Numpy pakke

Opret Python Matrix ved hjælp af en indlejret listedatatype

In Python, er arrays repræsenteret ved hjælp af listedatatypen. Så nu vil gøre brug af listen til at oprette en python matrix.

Vi laver en 3×3 matrix, som vist nedenfor:

Opret Python Matrix ved hjælp af en indlejret liste

  • Matrixen har 3 rækker og 3 kolonner.
  • Den første række i et listeformat vil være som følger: [8,14,-6]
  • Den anden række på en liste vil være: [12,7,4]
  • Den tredje række på en liste vil være: [-11,3,21]

Matrixen inde i en liste med alle rækker og kolonner er som vist nedenfor:

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

Så i henhold til matrixen ovenfor er listetypen med matrixdata som følger:

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

At læse data inde Python Matrix ved hjælp af en liste.

Vi vil gøre brug af den ovenfor definerede matrix. Eksemplet vil læse dataene, udskrive matrixen, vise det sidste element fra hver række.

Eksempel: At udskrive matrixen

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

#To print the matrix
print(M1)

Output:

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

Eksempel 2: At læse det sidste element fra hver række

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

Output:

-6
4
21

Eksempel 3: At udskrive rækkerne i matrixen

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

Output:

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

Tilføjelse af matricer ved hjælp af indlejret liste

Vi kan nemt tilføje to givne matricer. Matricerne her vil være i listeformen. Lad os arbejde på et eksempel, der sørger for at tilføje de givne matricer.

Matrix 1:

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

Matrix 2:

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

Last initialiserer en matrix, der gemmer resultatet af M1 + M2.

Matrix 3:

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

Eksempel: Tilføjelse af matricer

For at tilføje, vil matricerne gøre brug af en for-løkke, der går gennem begge de angivne matricer.

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)

Output:

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

Multiplikation af matricer ved hjælp af Nested List

For at gange matricerne kan vi bruge for-løkken på begge matricer som vist i koden nedenfor:

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)

Output:

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

Opret Python Matrix ved hjælp af Arrays fra Python Numpy pakke

Pythonbiblioteket Numpy hjælper med at håndtere arrays. Numpy behandler et array lidt hurtigere i forhold til listen.

For at arbejde med Numpy skal du først installere det. Følg trinene nedenfor for at installere Numpy.

Trin 1) Kommandoen til at installere Numpy er:

pip install NumPy

Trin 2) For at gøre brug af Numpy i din kode, skal du importere den.

import NumPy

Trin 3) Du kan også importere Numpy ved hjælp af et alias, som vist nedenfor:

import NumPy as np

Vi skal bruge array()-metoden fra Numpy til at skabe en pythonmatrix.

Eksempel: Array i Numpy for at oprette Python Matrix

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

Output:

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

Matrix Operation ved hjælp af Numpy.Array()

Den matrixoperation, der kan udføres, er addition, subtraktion, multiplikation, transponering, aflæsning af rækkerne, kolonnerne i en matrix, udskæring af matrixen osv. I alle eksemplerne skal vi bruge en array()-metode.

Matrix tilføjelse

For at udføre addition på matricen, vil vi oprette to matricer ved hjælp af numpy.array() og tilføje dem ved hjælp af (+) operatoren.

Eksempel:

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)

Output:

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

Matrix subtraktion

For at udføre subtraktion på matrixen, vil vi oprette to matricer ved hjælp af numpy.array() og trække dem fra ved hjælp af (-) operatoren.

Eksempel:

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)

Output:

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

Matrix multiplikation

Først vil der oprettes to matricer ved hjælp af numpy.arary(). For at multiplicere dem kan du bruge numpy dot() metoden. Numpy.dot() er prikproduktet af matrix M1 og M2. Numpy.dot() håndterer 2D-arrays og udfører matrixmultiplikationer.

Eksempel:

import numpy as np

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

Output:

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

Matrix Transponering

Transponeringen af ​​en matrix beregnes ved at ændre rækkerne som kolonner og kolonner som rækker. Transpose()-funktionen fra Numpy kan bruges til at beregne transponeringen af ​​en matrix.

Eksempel:

import numpy as np

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

print(M2)

Output:

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

Udskæring af en matrix

Slicing vil returnere elementerne fra matrixen baseret på det angivne start/slut-indeks.

  • Syntaksen for udskæring er – [start:slut]
  • Hvis startindekset ikke er angivet, betragtes det som 0. For eksempel [:5], betyder det som [0:5].
  • Hvis slutningen ikke passeres, vil den tage som længden af ​​arrayet.
  • Hvis starten/slutningen har negative værdier, vil udskæringen blive udført fra slutningen af ​​arrayet.

Før vi arbejder med at skære på en matrix, lad os først forstå, hvordan man anvender skive på et simpelt array.

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

Output:

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

Lad os nu implementere udskæring på matrix. At udføre udskæring på en matrix

syntaksen vil være M1[row_start:row_end, col_start:col_end]

  • Den første start/afslutning vil være for rækken, dvs. at vælge rækkerne i matrixen.
  • Den anden start/afslutning vil være for kolonnen, dvs. at vælge kolonnerne i matrixen.

Matrixen M1 t, som vi skal bruge, er som følger:

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

Der er i alt 4 rækker. Indekset starter fra 0 til 3. 0th række er [2,4,6,8,10], 1st række er [3,6,9,-12,-15] efterfulgt af 2nd og 3rd.

Matrixen M1 har 5 søjler. Indekset starter fra 0 til 4. 0th kolonne har værdierne [2,3,4,5], 1st kolonner har værdier [4,6,8,-10] efterfulgt af 2nd, 3rd, 4th, og 5th.

Her er et eksempel, der viser, hvordan man henter række- og kolonnedata fra matrixen ved hjælp af udskæring. I eksemplet udskriver vi 1st og 2nd række, og for kolonner vil vi have den første, anden og tredje kolonne. For at få det output har vi brugt: M1[1:3, 1:4]

Eksempel:

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.

Output:

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

Eksempel: At udskrive alle rækker og tredje kolonner

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.

Output:

[  8 -12  16 -20]

Eksempel: For at udskrive den første række og alle kolonner

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

Output:

[[ 2  4  6  8 10]]

Eksempel: For at udskrive de første tre rækker og de første 2 kolonner

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

Output:

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

Adgang til NumPy Matrix

Vi har set, hvordan udskæring fungerer. Med det i betragtning, vil vi se, hvordan man får rækkerne og kolonnerne fra matrixen.

For at udskrive rækkerne i matrixen

I eksemplet vil udskrive rækkerne af matrixen.

Eksempel:

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

Output:

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

For at få den sidste række kan du gøre brug af indekset eller -1. For eksempel har matrixen 3 rækker,

så M1[0] vil give dig den første række,

M1[1] giver dig anden række

M1[2] eller M1[-1] giver dig den tredje række eller sidste række.

For at udskrive matrixens kolonner

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

Output:

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

Resumé

  • A Python matrix er en specialiseret todimensional rektangulær matrix af data, der er gemt i rækker og kolonner. Dataene i en matrix kan være tal, strenge, udtryk, symboler osv. Matrix er en af ​​de vigtige datastrukturer, som kan bruges i matematiske og videnskabelige beregninger.
  • Python har ikke en ligetil måde at implementere en matrixdatatype på. Python matrix kan oprettes ved hjælp af en indlejret listedatatype og ved at bruge numpy-biblioteket.
  • Pythonbiblioteket Numpy hjælper med at håndtere arrays. Numpy behandler et array lidt hurtigere i forhold til listen.
  • Den matrixoperation, der kan udføres, er addition, subtraktion, multiplikation, transponering, læsning af rækkerne, kolonnerne i en matrix, opskæring af matrixen osv.
  • For at tilføje to matricer kan du bruge numpy.array() og tilføje dem ved hjælp af (+) operatoren.
  • For at multiplicere dem kan du gøre brug af numpy dot() metoden. Numpy.dot() er prikproduktet af matrix M1 og M2. Numpy.dot() håndterer 2D-arrays og udfører matrixmultiplikationer.
  • Transponeringen af ​​en matrix beregnes ved at ændre rækkerne som kolonner og kolonner som rækker. Transpose()-funktionen fra Numpy kan bruges til at beregne transponeringen af ​​en matrix.
  • Udskæring af en matrix vil returnere dig elementerne baseret på det angivne start/slut-indeks.