Python Matrix: Transponering, Multiplikation, NumPy-arrays

โšก Smart opsummering

A Python En matrix er et todimensionelt array af data i rรฆkker og kolonner, der bruges i matematik og naturvidenskab. Her lรฆrer du at oprette matricer med indbyggede lister og NumPy, og udfรธre addition, multiplikation, transponering og opdeling.

  • ๐Ÿ”ข Hvad er det: En matrix er et todimensionelt array af data i rรฆkker og kolonner.
  • ???? Indlejrede lister: Python Matricer kan opbygges som en liste af lister.
  • ๐Ÿงฎ NumPy-arrays: numpy.array() opretter hurtigere, funktionsrige matricer.
  • โž• Operationer: Tilfรธj, underskrivtract, og multiplicer matricer med operatorer eller numpy.dot().
  • ๐Ÿ”„ Transponรฉr og opdel: transpose() bytter om pรฅ rรฆkker og kolonner; slicing vรฆlger undermatricer.
  • ๐Ÿค– AI-hjรฆlp: AI-vรฆrktรธjer som Copilot genererer matrix- og NumPy-kode รธjeblikkeligt.

Python Matrix

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 PythonMange operationer kan udfรธres pรฅ en matrixlignende addition, subtraction, 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()

Matrixoperationen, der kan udfรธres, er addition, subtraction, multiplikation, transponering, lรฆsning af rรฆkker og kolonner i en matrix, opdeling af matrixen osv. I alle eksemplerne vil 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 Subtraction

At udfรธre subtraction pรฅ matricen, vil vi oprette to matricer ved hjรฆlp af numpy.array() og subtract 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:

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

Ofte Stillede Spรธrgsmรฅl

En matrix er et todimensionelt rektangulรฆrt array af data arrangeret i rรฆkker og kolonner. Python har ingen indbygget matrixtype, sรฅ du bruger indbyggede lister eller NumPy-biblioteket.

Opret en matrix som en indlejret liste, som [[8, 14, -6], [12, 7, 4]], eller med numpy.array() for en hurtigere og mere kraftfuld matrix, der understรธtter indbyggede operationer.

NumPy behandler arrays hurtigere end almindelige lister og tilbyder indbyggede matrixoperationer som addition, punktprodukt, transponering og slicing, hvilket gรธr matrixkode kortere og mere effektiv.

For รฆgte matrixmultiplikation skal du bruge numpy.dot(M1, M2) eller M1.dot(M2). Plus- og stjerneoperatorerne pรฅ NumPy-arrays udfรธrer i stedet elementvis addition og multiplikation.

Kald transpose()-metoden pรฅ et NumPy-array, f.eks. M1.transpose(). Den bytter om pรฅ rรฆkker og kolonner, sรฅ elementet i rรฆkke i, kolonne j flyttes til rรฆkke j, kolonne i.

AI-assistenter som GitHub Copilot fuldfรธrer automatisk NumPy-arraykode, genererer matrixoperationer som punktprodukter og transponeringer og forklarer slicing-syntaks, mens du skriver. Python.

Ja. AI-drevne vรฆrktรธjer kan automatisere skrivning af NumPy-pipelines, vรฆlge effektive vektoriserede operationer frem for lรธkker og generere kode til lineรฆre algebraopgaver som f.eks. lรธsning af ligningssystemer.

Brug M1[row_start:row_end, col_start:col_end] til at vรฆlge en undermatrix. Hvis man udelader en start eller en slutmatrix, bruges matrixgrรฆnserne, og negative indekser tรฆller fra slutningen.

Opsummer dette indlรฆg med: