Python Matrix: Voorbeelden van transponeren, vermenigvuldigen, NumPy-arrays

Wat is Python Matrix?

A Python matrix is ​​een gespecialiseerde tweedimensionale rechthoekige array van data opgeslagen in rijen en kolommen. De data in een matrix kunnen getallen, strings, expressies, symbolen, etc. zijn. Matrix is ​​een van de belangrijke datastructuren die gebruikt kunnen worden in wiskundige en wetenschappelijke berekeningen.

Hoe doen Python Matrixen werken?

De gegevens in de tweedimensionale array in matrixformaat zien er als volgt uit:

Python Matrix

Stap 1) Het toont een 2×2 matrix. Het heeft twee rijen en 2 kolommen. De data in de matrix zijn getallen. Rij 1 heeft waarden 2,3 en rij 2 heeft waarden 4,5. De kolommen, d.w.z. col1, hebben waarden 2,4 en col2 heeft waarden 3,5.

Stap 2) Het toont een 2×3-matrix. Het heeft twee rijen en drie kolommen. De gegevens in de eerste rij, dat wil zeggen rij1, hebben de waarden 2,3,4, en rij2 heeft de waarden 5,6,7. De kolommen col1 heeft waarden 2,5, col2 heeft waarden 3,6 en col3 heeft waarden 4,7.

Op dezelfde manier kunt u uw gegevens laten opslaan in de nxn-matrix PythonEr kunnen veel bewerkingen worden uitgevoerd op een matrixachtige manier: optellen, aftrekken, vermenigvuldigen, etc.

Python heeft geen eenvoudige manier om een ​​matrixgegevenstype te implementeren.

De Python-matrix maakt gebruik van arrays, en hetzelfde kan worden geïmplementeerd.

  • Maak een Python Matrix met behulp van het geneste lijstgegevenstype
  • creëren Python Matrix met arrays van Python Numpy-pakket

creëren Python Matrix met behulp van een genest lijstgegevenstype

In Python, de arrays worden weergegeven met behulp van het gegevenstype lijst. Dus nu gaan we de lijst gebruiken om een ​​pythonmatrix te maken.

We zullen een 3×3-matrix maken, zoals hieronder weergegeven:

creëren Python Matrix met behulp van een geneste lijst

  • De matrix heeft 3 rijen en 3 kolommen.
  • De eerste rij in een lijstindeling ziet er als volgt uit: [8,14,-6]
  • De tweede rij in een lijst is: [12,7,4]
  • De derde rij in een lijst is: [-11,3,21]

De matrix in een lijst met alle rijen en kolommen is zoals hieronder weergegeven:

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

Dus volgens de bovenstaande matrix is ​​het lijsttype met matrixgegevens als volgt:

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

Om gegevens binnenin te lezen Python Matrix met behulp van een lijst.

We zullen gebruik maken van de hierboven gedefinieerde matrix. Het voorbeeld leest de gegevens, drukt de matrix af en geeft het laatste element van elke rij weer.

Voorbeeld: Om de matrix af te drukken

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

Voorbeeld 2: Om het laatste element van elke rij te lezen

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

Voorbeeld 3: Om de rijen in de Matrix af te drukken

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]

Matrices toevoegen met behulp van geneste lijst

We kunnen gemakkelijk twee gegeven matrices toevoegen. De matrices hier zullen in de lijstvorm zijn. Laten we aan een voorbeeld werken waarbij we ervoor zorgen dat de gegeven matrices worden toegevoegd.

Matrix 1:

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

Matrix 2:

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

Als laatste wordt een matrix geïnitialiseerd waarin het resultaat van M1 + M2 wordt opgeslagen.

Matrix 3:

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

Voorbeeld: Matrices toevoegen

Bovendien zullen de matrices gebruik maken van een for-lus die door beide gegeven matrices loopt.

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

Vermenigvuldiging van matrices met behulp van geneste lijst

Om de matrices te vermenigvuldigen, kunnen we de for-lus op beide matrices gebruiken, zoals weergegeven in de onderstaande code:

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

creëren Python Matrix met arrays van Python Numpy-pakket

De Python-bibliotheek Numpy helpt bij het omgaan met arrays. Numpy verwerkt een array iets sneller in vergelijking met de lijst.

Om met Numpy te kunnen werken, moet je het eerst installeren. Volg de onderstaande stappen om Numpy te installeren.

Stap 1) Het commando om Numpy te installeren is:

pip install NumPy

Stap 2) Om Numpy in uw code te gebruiken, moet u deze importeren.

import NumPy

Stap 3) Je kunt Numpy ook importeren met een alias, zoals hieronder weergegeven:

import NumPy as np

We gaan de methode array() van Numpy gebruiken om een ​​Python-matrix te maken.

Voorbeeld: Array in Numpy om te maken 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 Operamet Numpy.Array()

De matrixbewerkingen die kunnen worden uitgevoerd zijn optellen, aftrekken, vermenigvuldigen, transponeren, de rijen en kolommen van een matrix lezen, de matrix opdelen, enz. In alle voorbeelden gaan we gebruikmaken van een array()-methode.

Matrixtoevoeging

Om een ​​optelling op de matrix uit te voeren, maken we twee matrices met behulp van numpy.array() en tellen we deze op met behulp van de operator (+).

Voorbeeld:

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

Matrixaftrekking

Om een ​​aftrekking op de matrix uit te voeren, maken we twee matrices met behulp van numpy.array() en trekken we deze af met behulp van de (-) operator.

Voorbeeld:

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 vermenigvuldiging

Eerst worden twee matrices gemaakt met behulp van numpy.arary(). Om ze te vermenigvuldigen, kunt u de numpy dot()-methode gebruiken. Numpy.dot() is het puntproduct van matrix M1 en M2. Numpy.dot() verwerkt de 2D-arrays en voert matrixvermenigvuldigingen uit.

Voorbeeld:

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

Matrixtransponering

De transponering van een matrix wordt berekend door de rijen als kolommen en de kolommen als rijen te veranderen. De functie transpose() van Numpy kan worden gebruikt om de transpositie van een matrix te berekenen.

Voorbeeld:

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

Het snijden van een matrix

Door te slicen krijgt u de elementen uit de matrix terug op basis van de gegeven start-/eindindex.

  • De syntaxis voor het segmenteren is – [start:eind]
  • Als de startindex niet wordt opgegeven, wordt deze beschouwd als 0. Bijvoorbeeld [:5] betekent dit als [0:5].
  • Als het einde niet wordt overschreden, duurt dit de lengte van de array.
  • Als het begin/einde negatieve waarden heeft, wordt het segmenteren vanaf het einde van de array uitgevoerd.

Voordat we gaan werken aan het slicen op een matrix, moeten we eerst begrijpen hoe we slice op een eenvoudige array kunnen toepassen.

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]

Laten we nu het snijden op matrix implementeren. Voor het uitvoeren van segmentering op een matrix

de syntaxis is M1[row_start:row_end, col_start:col_end]

  • Het eerste begin/einde is voor de rij, dwz om de rijen van de matrix te selecteren.
  • Het tweede begin/einde is voor de kolom, dwz om de kolommen van de matrix te selecteren.

De matrix M1 die we gaan gebruiken is als volgt:

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

Er zijn in totaal 4 rijen. De index begint van 0 tot 3. De 0th rij is de [2,4,6,8,10], 1st rij is [3,6,9,-12,-15] gevolgd door 2nd en 3rd.

De matrix M1 heeft 5 kolommen. De index begint van 0 tot 4. De 0th kolom heeft waarden [2,3,4,5], 1st kolommen hebben waarden [4,6,8,-10] gevolgd door 2nd, 3rd, 4then 5th.

Hier is een voorbeeld dat laat zien hoe u de rijen- en kolomgegevens uit de matrix haalt met behulp van slicing. In het voorbeeld printen we de 1st en 2nd rij, en voor kolommen willen we de eerste, tweede en derde kolom. Om die uitvoer te krijgen hebben we gebruikt: M1[1:3, 1:4]

Voorbeeld:

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

Voorbeeld: Om alle rijen en derde kolommen af ​​te drukken

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]

Voorbeeld: Om de eerste rij en alle kolommen af ​​te drukken

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

Voorbeeld: Om de eerste drie rijen en de eerste twee kolommen af ​​te drukken

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

Toegang tot de NumPy-matrix

We hebben gezien hoe het snijden werkt. Als we dat in overweging nemen, gaan we bekijken hoe we de rijen en kolommen uit de matrix kunnen halen.

Om de rijen van de matrix af te drukken

In het voorbeeld worden de rijen van de matrix afgedrukt.

Voorbeeld:

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]

Om de laatste rij te krijgen, kunt u gebruik maken van de index of -1. De matrix heeft bijvoorbeeld 3 rijen,

dus M1[0] geeft je de eerste rij,

M1[1] geeft je de tweede rij

M1[2] of M1[-1] geeft je de derde rij of laatste rij.

Om de kolommen van de matrix af te drukken

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]

Samenvatting

  • A Python matrix is ​​een gespecialiseerde tweedimensionale rechthoekige array van data opgeslagen in rijen en kolommen. De data in een matrix kunnen getallen, strings, expressies, symbolen, etc. zijn. Matrix is ​​een van de belangrijke datastructuren die gebruikt kunnen worden in wiskundige en wetenschappelijke berekeningen.
  • Python heeft geen eenvoudige manier om een ​​matrixgegevenstype te implementeren. Python matrix kan worden gemaakt met behulp van een genest lijstgegevenstype en met behulp van de numpy-bibliotheek.
  • De Python-bibliotheek Numpy helpt bij het omgaan met arrays. Numpy verwerkt een array iets sneller in vergelijking met de lijst.
  • De matrixbewerkingen die kunnen worden uitgevoerd zijn optellen, aftrekken, vermenigvuldigen, transponeren, het lezen van de rijen en kolommen van een matrix, het opdelen van de matrix, etc.
  • Om twee matrices op te tellen, kunt u numpy.array() gebruiken en ze optellen met behulp van de operator (+).
  • Om ze te vermenigvuldigen, kun je gebruik maken van de numpy dot() methode. Numpy.dot() is het puntproduct van matrix M1 en M2. Numpy.dot() verwerkt de 2D-arrays en voert matrixvermenigvuldigingen uit.
  • De transponering van een matrix wordt berekend door de rijen als kolommen en de kolommen als rijen te veranderen. De functie transpose() van Numpy kan worden gebruikt om de transpositie van een matrix te berekenen.
  • Door een matrix in segmenten te snijden, krijgt u de elementen terug op basis van de gegeven start-/eindindex.