Python Matrix: Transponeren, Vermenigvuldigen, NumPy-arrays

⚡ Slimme samenvatting

A Python Een matrix is ​​een tweedimensionale reeks gegevens in rijen en kolommen, die gebruikt wordt in de wiskunde en natuurwetenschappen. Hier leer je matrices maken met geneste lijsten en NumPy, en hoe je optellen, vermenigvuldigen, transponeren en slicen uitvoert.

  • 🔢 Wat het is: Een matrix is ​​een tweedimensionale reeks gegevens in rijen en kolommen.
  • 📋 Geneste lijsten: Python Matrices kunnen worden opgebouwd als een lijst van lijsten.
  • 🧮 NumPy-arrays: numpy.array() maakt snellere, feature-rijke matrices aan.
  • ➕ Operabanden: Toevoegen, vervangentract, en vermenigvuldig matrices met operatoren of numpy.dot().
  • 🔄 Transponeren en snijden: transpose() verwisselt rijen en kolommen; slicing selecteert submatrices.
  • 🤖 AI-ondersteuning: AI-tools zoals Copilot genereren direct matrix- en NumPy-code.

Python Matrix

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 PythonOp een matrix kunnen veel bewerkingen worden uitgevoerd, zoals optellen en aftrekken.traction, vermenigvuldiging, enz.

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 uitgevoerd kunnen worden zijn optellen en aftrekken.tracTransponeren, vermenigvuldigen, transponeren, het lezen van de rijen en kolommen van een matrix, het snijden van de matrix, enzovoort. In alle voorbeelden maken we gebruik van de `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]]

Matrixsubtractie

Om sub uit te voerentracOm de matrix te bewerken, maken we twee matrices met behulp van numpy.array() en sub.tract ze 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]

Veelgestelde vragen

Een matrix is ​​een tweedimensionale rechthoekige reeks gegevens, gerangschikt in rijen en kolommen. Python Het heeft geen ingebouwd matrixtype, dus je gebruikt geneste lijsten of de NumPy-bibliotheek.

Maak een matrix als een geneste lijst, zoals [[8, 14, -6], [12, 7, 4]], of met numpy.array() voor een snellere, krachtigere matrix die ingebouwde bewerkingen ondersteunt.

NumPy verwerkt arrays sneller dan gewone lijsten en biedt ingebouwde matrixbewerkingen zoals optellen, inwendig product, transponeren en slicen, waardoor matrixcode korter en efficiënter wordt.

Voor echte matrixvermenigvuldiging gebruikt u numpy.dot(M1, M2) of M1.dot(M2). De plus- en steroperatoren op NumPy-arrays voeren in plaats daarvan elementgewijze optelling en vermenigvuldiging uit.

Roep de `transpose()`-methode aan op een NumPy-array, bijvoorbeeld `M1.transpose()`. Deze methode verwisselt de rijen en kolommen, waardoor het element op rij i, kolom j naar rij j, kolom i wordt verplaatst.

AI-assistenten zoals GitHub Copilot vullen NumPy-arraycode automatisch aan, genereren matrixbewerkingen zoals dotproducten en transponeringen, en leggen de syntaxis van slicing uit terwijl je schrijft. Python.

Ja. Door AI aangedreven tools kunnen het schrijven van NumPy-pipelines automatiseren, efficiëntere vectorbewerkingen boven lussen verkiezen en code genereren voor lineaire algebra-taken zoals het oplossen van stelsels vergelijkingen.

Gebruik M1[row_start:row_end, col_start:col_end] om een ​​submatrix te selecteren. Als een begin- of eindpunt wordt weggelaten, worden de arraygrenzen gebruikt en tellen negatieve indexen vanaf het eind.

Vat dit bericht samen met: