Python Matris: Transponering, Multiplikation, NumPy Arrays Exempel

Vad är Python Matris?

A Python matris är en specialiserad tvådimensionell rektangulär matris av data lagrad i rader och kolumner. Data i en matris kan vara siffror, strängar, uttryck, symboler etc. Matris är en av de viktiga datastrukturer som kan användas i matematiska och vetenskapliga beräkningar.

Hur gör Python Fungerar matriser?

Data inuti den tvådimensionella matrisen i matrisformat ser ut som följer:

Python Matris

Steg 1) Den visar en 2×2-matris. Den har två rader och 2 kolumner. Data inuti matrisen är siffror. Rad1 har värdena 2,3 och rad2 har värden 4,5. Kolumnerna, dvs col1, har värdena 2,4 och col2 har värdena 3,5.

Steg 2) Den visar en 2×3-matris. Den har två rader och tre kolumner. Data inuti den första raden, dvs rad1, har värdena 2,3,4, och rad2 har värdena 5,6,7. Kolumnerna kol1 har värdena 2,5, kol2 har värdena 3,6 och kol3 har värdena 4,7.

Så på samma sätt kan du ha dina data lagrade inuti nxn-matrisen Python. Många operationer kan göras på en matrisliknande addition, subtraktion, multiplikation, etc.

Python har inte ett enkelt sätt att implementera en matrisdatatyp.

Pythonmatrisen använder sig av arrayer, och detsamma kan implementeras.

  • Skapa en Python Matris som använder den kapslade listdatatypen
  • Skapa Python Matris med Arrays från Python Numpy paket

Skapa Python Matris med en kapslad listdatatyp

In Python, representeras arrayerna med hjälp av listdatatypen. Så nu kommer att använda listan för att skapa en pythonmatris.

Vi kommer att skapa en 3×3-matris, som visas nedan:

Skapa Python Matris med hjälp av en kapslad lista

  • Matrisen har 3 rader och 3 kolumner.
  • Den första raden i ett listformat blir som följer: [8,14,-6]
  • Den andra raden i en lista kommer att vara: [12,7,4]
  • Den tredje raden i en lista kommer att vara: [-11,3,21]

Matrisen i en lista med alla rader och kolumner är som visas nedan:

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

Så enligt matrisen ovan är listtypen med matrisdata som följer:

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

För att läsa data inuti Python Matris med hjälp av en lista.

Vi kommer att använda oss av matrisen som definieras ovan. Exemplet kommer att läsa data, skriva ut matrisen, visa det sista elementet från varje rad.

Exempel: För att skriva ut matrisen

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

#To print the matrix
print(M1)

Produktion:

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

Exempel 2: Att läsa det sista elementet från varje 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])

Produktion:

-6
4
21

Exempel 3: Att skriva ut raderna 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])

Produktion:

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

Lägga till matriser med kapslad lista

Vi kan enkelt lägga till två givna matriser. Matriserna här kommer att finnas i listformen. Låt oss arbeta med ett exempel som kommer att lägga till de givna matriserna.

Matris 1:

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

Matris 2:

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

Last kommer att initiera en matris som lagrar resultatet av M1 + M2.

Matris 3:

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

Exempel: Lägga till matriser

För att lägga till kommer matriserna att använda sig av en for-loop som går igenom båda de angivna matriserna.

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)

Produktion:

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

Multiplikation av matriser med kapslad lista

För att multiplicera matriserna kan vi använda for-loopen på båda matriserna som visas i koden nedan:

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)

Produktion:

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

Skapa Python Matris med Arrays från Python Numpy paket

Pythonbiblioteket Numpy hjälper till att hantera arrayer. Numpy bearbetar en array lite snabbare jämfört med listan.

För att arbeta med Numpy måste du installera det först. Följ stegen nedan för att installera Numpy.

Steg 1) Kommandot för att installera Numpy är:

pip install NumPy

Steg 2) För att använda Numpy i din kod måste du importera den.

import NumPy

Steg 3) Du kan också importera Numpy med ett alias, som visas nedan:

import NumPy as np

Vi kommer att använda array()-metoden från Numpy för att skapa en pythonmatris.

Exempel: Array i Numpy för att skapa Python Matris

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

Produktion:

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

Matris Operation med hjälp av Numpy.Array()

Matrisoperationen som kan göras är addition, subtraktion, multiplikation, transponering, läsning av rader, kolumner i en matris, slicing av matrisen, etc. I alla exemplen kommer vi att använda en array()-metod.

Matristillägg

För att utföra addition på matrisen skapar vi två matriser med numpy.array() och lägger till dem med operatorn (+).

Exempelvis:

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)

Produktion:

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

Matrissubtraktion

För att utföra subtraktion på matrisen skapar vi två matriser med numpy.array() och subtraherar dem med operatorn (-).

Exempelvis:

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)

Produktion:

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

Matrismultiplikation

First kommer att skapa två matriser med numpy.arary(). För att multiplicera dem kan du använda numpy dot()-metoden. Numpy.dot() är punktprodukten av matrisen M1 och M2. Numpy.dot() hanterar 2D-matriserna och utför matrismultiplikationer.

Exempelvis:

import numpy as np

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

Produktion:

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

Matrix Transponera

Transponeringen av en matris beräknas genom att raderna ändras som kolumner och kolumner som rader. Transpose()-funktionen från Numpy kan användas för att beräkna transponeringen av en matris.

Exempelvis:

import numpy as np

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

print(M2)

Produktion:

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

Skivning av en matris

Slicing kommer att returnera elementen från matrisen baserat på det angivna start-/slutindexet.

  • Syntaxen för skivning är – [start:slut]
  • Om startindexet inte anges anses det vara 0. Till exempel [:5], betyder det som [0:5].
  • Om slutet inte passeras tar det som längden på arrayen.
  • Om starten/slutet har negativa värden kommer det att skäras upp från slutet av arrayen.

Innan vi arbetar med att skiva på en matris, låt oss först förstå hur man applicerar skiva på en enkel 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

Produktion:

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

Låt oss nu implementera skivning på matris. Att utföra skivning på en matris

syntaxen kommer att vara M1[row_start:row_end, col_start:col_end]

  • Den första starten/slutet kommer att vara för raden, dvs för att välja raderna i matrisen.
  • Den andra starten/slutet kommer att vara för kolumnen, dvs för att välja kolumnerna i matrisen.

Matrisen M1 t som vi ska använda är följande:

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

Det finns totalt 4 rader. Indexet börjar från 0 till 3. 0:anth raden är [2,4,6,8,10], 1st rad är [3,6,9,-12,-15] följt av 2nd och 3rd.

Matrisen M1 har 5 kolumner. Indexet börjar från 0 till 4. 0th kolumnen har värdena [2,3,4,5], 1st kolumner har värden [4,6,8,-10] följt av 2nd, 3rd, 4th, och 5th.

Här är ett exempel som visar hur man hämtar rad- och kolumndata från matrisen med hjälp av skivning. I exemplet skriver vi ut 1:anst och 2nd rad, och för kolumner vill vi ha den första, andra och tredje kolumnen. För att få den utgången har vi använt: M1[1:3, 1:4]

Exempelvis:

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.

Produktion:

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

Exempel: För att skriva ut alla rader och tredje kolumner

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.

Produktion:

[  8 -12  16 -20]

Exempel: För att skriva ut den första raden och alla kolumner

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

Produktion:

[[ 2  4  6  8 10]]

Exempel: För att skriva ut de tre första raderna och de två första kolumnerna

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

Produktion:

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

Åtkomst till NumPy Matrix

Vi har sett hur skivning fungerar. Med hänsyn till det kommer vi att ta reda på hur man hämtar rader och kolumner från matrisen.

För att skriva ut raderna i matrisen

I exemplet kommer att skriva ut raderna i matrisen.

Exempelvis:

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

Produktion:

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

För att få den sista raden kan du använda indexet eller -1. Till exempel har matrisen 3 rader,

så M1[0] ger dig den första raden,

M1[1] ger dig andra raden

M1[2] eller M1[-1] ger dig den tredje raden eller sista raden.

För att skriva ut matrisens kolumner

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

Produktion:

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

Sammanfattning

  • A Python matris är en specialiserad tvådimensionell rektangulär matris av data lagrad i rader och kolumner. Data i en matris kan vara siffror, strängar, uttryck, symboler etc. Matris är en av de viktiga datastrukturer som kan användas i matematiska och vetenskapliga beräkningar.
  • Python har inte ett enkelt sätt att implementera en matrisdatatyp. Python matris kan skapas med en kapslad listdatatyp och genom att använda numpy-biblioteket.
  • Pythonbiblioteket Numpy hjälper till att hantera arrayer. Numpy bearbetar en array lite snabbare jämfört med listan.
  • Den matrisoperation som kan göras är addition, subtraktion, multiplikation, transponering, läsning av rader, kolumner i en matris, skiva matrisen, etc.
  • För att lägga till två matriser kan du använda numpy.array() och lägga till dem med operatorn (+).
  • För att multiplicera dem kan du använda numpy dot()-metoden. Numpy.dot() är punktprodukten av matrisen M1 och M2. Numpy.dot() hanterar 2D-matriserna och utför matrismultiplikationer.
  • Transponeringen av en matris beräknas genom att raderna ändras som kolumner och kolumner som rader. Transpose()-funktionen från Numpy kan användas för att beräkna transponeringen av en matris.
  • Skivning av en matris kommer att returnera elementen baserat på det angivna start-/slutindexet.