Python Matrise: Eksempler på Transponering, Multiplikasjon, NumPy-matriser

Hva er Python Matrise?

A Python matrise er en spesialisert todimensjonal rektangulær rekke data lagret i rader og kolonner. Dataene i en matrise kan være tall, strenger, uttrykk, symboler osv. Matrise er en av de viktige datastrukturene som kan brukes i matematiske og vitenskapelige beregninger.

hvordan Python Fungerer matriser?

Dataene inne i den todimensjonale matrisen i matriseformat ser ut som følger:

Python Matrix

Trinn 1) Den viser en 2×2 matrise. Den har to rader og 2 kolonner. Dataene inne i matrisen er tall. Rad1 har verdiene 2,3, og rad2 har verdiene 4,5. Kolonnene, dvs. col1, har verdiene 2,4, og col2 har verdiene 3,5.

Trinn 2) Den viser en 2×3 matrise. Den har to rader og tre kolonner. Dataene i den første raden, dvs. rad1, har verdiene 2,3,4, og rad2 har verdiene 5,6,7. Kolonnene col1 har verdiene 2,5, col2 har verdiene 3,6, og col3 har verdiene 4,7.

Så på samme måte kan du ha dataene dine lagret inne i nxn-matrisen Python. Mange operasjoner kan gjøres på en matrise-lignende addisjon, subtraksjon, multiplikasjon, etc.

Python har ikke en enkel måte å implementere en matrisedatatype.

Pythonmatrisen benytter seg av arrays, og det samme kan implementeres.

  • Lag en Python Matrise som bruker den nestede listedatatypen
  • Opprett Python Matrise ved hjelp av matriser fra Python Numpy pakke

Opprett Python Matrise som bruker en nestet listedatatype

In Python, er matrisene representert ved hjelp av listedatatypen. Så nå vil bruke listen til å lage en pythonmatrise.

Vi vil lage en 3×3 matrise, som vist nedenfor:

Opprett Python Matrise ved hjelp av en nestet liste

  • Matrisen har 3 rader og 3 kolonner.
  • Den første raden i et listeformat vil være som følger: [8,14,-6]
  • Den andre raden i en liste vil være: [12,7,4]
  • Den tredje raden i en liste vil være: [-11,3,21]

Matrisen i en liste med alle rader og kolonner er som vist nedenfor:

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

Så i henhold til matrisen oppført ovenfor er listetypen med matrisedata som følger:

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

For å lese data inne Python Matrise ved hjelp av en liste.

Vi vil benytte oss av matrisen definert ovenfor. Eksemplet vil lese dataene, skrive ut matrisen, vise det siste elementet fra hver rad.

Eksempel: For å skrive ut matrisen

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

#To print the matrix
print(M1)

Utgang:

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

Eksempel 2: For å lese det siste elementet fra hver rad

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

Utgang:

-6
4
21

Eksempel 3: For å skrive ut radene i matrisen

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

Utgang:

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

Legge til matriser ved å bruke Nested List

Vi kan enkelt legge til to gitte matriser. Matrisene her vil være i listeformen. La oss jobbe med et eksempel som vil passe på å legge til de gitte matrisene.

Matrise 1:

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

Matrise 2:

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

Last vil initialisere en matrise som vil lagre resultatet av M1 + M2.

Matrise 3:

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

Eksempel: Legge til matriser

For å legge til vil matrisene bruke en for-løkke som vil gå gjennom begge matrisene som er gitt.

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)

Utgang:

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

Multiplikasjon av matriser ved hjelp av Nested List

For å multiplisere matrisene kan vi bruke for-løkken på begge matrisene 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)

Utgang:

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

Opprett Python Matrise ved hjelp av matriser fra Python Numpy pakke

Pythonbiblioteket Numpy hjelper til med å håndtere arrays. Numpy behandler en matrise litt raskere sammenlignet med listen.

For å jobbe med Numpy, må du installere det først. Følg trinnene nedenfor for å installere Numpy.

Trinn 1) Kommandoen for å installere Numpy er:

pip install NumPy

Trinn 2) For å bruke Numpy i koden din, må du importere den.

import NumPy

Trinn 3) Du kan også importere Numpy ved å bruke et alias, som vist nedenfor:

import NumPy as np

Vi skal bruke array()-metoden fra Numpy for å lage en pythonmatrise.

Eksempel: Array i Numpy for å lage Python Matrix

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

Utgang:

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

Matrix Operasjon ved å bruke Numpy.Array()

Matriseoperasjonen som kan gjøres er addisjon, subtraksjon, multiplikasjon, transponering, lesing av rader, kolonner i en matrise, skjæring av matrisen osv. I alle eksemplene skal vi bruke en array()-metode.

Matrisetillegg

For å utføre addisjon på matrisen, vil vi lage to matriser ved å bruke numpy.array() og legge dem til med (+)-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)

Utgang:

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

Matrisesubtraksjon

For å utføre subtraksjon på matrisen, vil vi lage to matriser ved å bruke numpy.array() og trekke dem fra ved å bruke (-)-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)

Utgang:

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

Matrisemultiplikasjon

Først vil lage to matriser ved å bruke numpy.arary(). For å multiplisere dem kan du bruke numpy dot()-metoden. Numpy.dot() er punktproduktet av matrise M1 og M2. Numpy.dot() håndterer 2D-matrisene og utfører matrisemultiplikasjoner.

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)

Utgang:

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

Matrix Transponer

Transponeringen av en matrise beregnes ved å endre radene som kolonner og kolonner som rader. Transpose()-funksjonen fra Numpy kan brukes til å beregne transponeringen av en matrise.

Eksempel:

import numpy as np

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

print(M2)

Utgang:

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

Skjæring av en matrise

Slicing vil returnere elementene fra matrisen basert på start-/sluttindeksen som er gitt.

  • Syntaksen for skjæring er – [start:slutt]
  • Hvis startindeksen ikke er gitt, regnes den som 0. For eksempel [:5], betyr det som [0:5].
  • Hvis slutten ikke passeres, vil det ta som lengden på arrayet.
  • Hvis start/slutt har negative verdier, vil skjæringen gjøres fra slutten av matrisen.

Før vi jobber med å skjære på en matrise, la oss først forstå hvordan du bruker skive på en enkel matrise.

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

Utgang:

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

La oss nå implementere skjæring på matrise. For å utføre skjæring på en matrise

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

  • Første start/slutt vil være for raden, dvs. å velge radene i matrisen.
  • Den andre starten/slutten vil være for kolonnen, dvs. å velge kolonnene i matrisen.

Matrisen M1 t som vi skal bruke 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]])

Det er totalt 4 rader. Indeksen starter fra 0 til 3. 0th rad er [2,4,6,8,10], 1st rad er [3,6,9,-12,-15] etterfulgt av 2nd og 3rd.

Matrisen M1 har 5 kolonner. Indeksen starter fra 0 til 4. 0th kolonne har verdier [2,3,4,5], 1st kolonner har verdier [4,6,8,-10] etterfulgt av 2nd, 3rd, 4th, og 5th.

Her er et eksempel som viser hvordan du henter rader og kolonnedata fra matrisen ved hjelp av slicing. I eksemplet skriver vi ut 1st og 2nd rad, og for kolonner vil vi ha den første, andre og tredje kolonnen. For å få den utgangen har vi brukt: 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.

Utgang:

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

Eksempel: For å skrive ut alle rader 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.

Utgang:

[  8 -12  16 -20]

Eksempel: For å skrive ut den første raden og alle kolonnene

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

Utgang:

[[ 2  4  6  8 10]]

Eksempel: For å skrive ut de tre første radene og de to første kolonnene

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

Utgang:

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

Få tilgang til NumPy Matrix

Vi har sett hvordan skjæring fungerer. Når vi tar det i betraktning, vil vi finne ut hvordan vi får radene og kolonnene fra matrisen.

For å skrive ut radene i matrisen

I eksemplet vil skrive ut radene i matrisen.

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

Utgang:

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

For å få den siste raden kan du bruke indeksen eller -1. For eksempel har matrisen 3 rader,

så M1[0] vil gi deg den første raden,

M1[1] vil gi deg andre rad

M1[2] eller M1[-1] vil gi deg den tredje raden eller siste raden.

For å skrive ut kolonnene i matrisen

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

Utgang:

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

Sammendrag

  • A Python matrise er en spesialisert todimensjonal rektangulær rekke data lagret i rader og kolonner. Dataene i en matrise kan være tall, strenger, uttrykk, symboler osv. Matrise er en av de viktige datastrukturene som kan brukes i matematiske og vitenskapelige beregninger.
  • Python har ikke en enkel måte å implementere en matrisedatatype. Python matrise kan opprettes ved hjelp av en nestet listedatatype og ved å bruke numpy-biblioteket.
  • Pythonbiblioteket Numpy hjelper til med å håndtere arrays. Numpy behandler en matrise litt raskere sammenlignet med listen.
  • Matriseoperasjonen som kan gjøres er addisjon, subtraksjon, multiplikasjon, transponering, lesing av rader, kolonner i en matrise, skjæring av matrisen, etc.
  • For å legge til to matriser, kan du bruke numpy.array() og legge dem til med (+)-operatoren.
  • For å multiplisere vilje, kan du bruke numpy dot()-metoden. Numpy.dot() er punktproduktet av matrise M1 og M2. Numpy.dot() håndterer 2D-matrisene og utfører matrisemultiplikasjoner.
  • Transponeringen av en matrise beregnes ved å endre radene som kolonner og kolonner som rader. Transpose()-funksjonen fra Numpy kan brukes til å beregne transponeringen av en matrise.
  • Skjæring av en matrise vil returnere elementene basert på start-/sluttindeksen som er gitt.