Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python Matrix Operaties met NumPy: Transponeren, Optellen, Vermenigvuldigen & Slicing

Python Matrix Operaties met NumPy

Wiskundige modellering, wetenschappelijke computing en data-analyse zijn vaak afhankelijk van efficiënte manipulatie van tweedimensionale data. In Python kunnen matrices worden aangemaakt met gewone lijsten of, krachtiger, met de NumPy bibliotheek. Deze gids leidt je door de meest voorkomende matrix-operaties, complete met duidelijke codevoorbeelden en best-practice tips.

Wat is een Matrix?

Een matrix is een rechthoekige array van getallen (of andere datatypen) georganiseerd in rijen en kolommen. Hoewel Python geen speciale matrix-type in de kern taal heeft, kun je er een voorstellen met geneste lijsten of met NumPy's ndarray, wat snelle, vectorized operaties biedt.

Een Matrix Maken met Geneste Lijsten

Geneste lijsten zijn de simpelste manier om een matrix te bouwen. Elke innerlijke lijst vertegenwoordigt een rij:

# 3x3 matrix
M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
print(M1)

Output:

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

Data Uitlezen

Toegang tot elementen via rij- en kolomindices. Om het laatste element van elke rij te printen:

for row in M1:
    print(row[-1])

Output:

-6
4
21

Matrices Optellen

Wanneer beide matrices dezelfde vorm delen, is elementgewijs optellen straightforward:

M2 = [[3, 16, -6], [9, 7, -4], [-1, 3, 13]]
# Resultaat matrix
M3 = [[M1[i][j] + M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

Output:

[[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

Elementgewijs Vermenigvuldigen

Op dezelfde manier kun je corresponderende elementen vermenigvuldigen:

M3 = [[M1[i][j] * M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

Output:

[[24, 224, 36], [108, 49, -16], [11, 9, 273]]

NumPy Gebruiken voor Efficiënte Matrix Operaties

NumPy biedt een toegewezen array-type en een schat aan vectorized operaties. Installeer het met pip install numpy en importeer het als np:

import numpy as np

Een Matrix Maken

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

Output:

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

Basis Operaties

  • Optellen: M3 = M1 + M2
  • Aftrekken: M3 = M1 - M2
  • Dot Product (matrixvermenigvuldiging): M3 = M1.dot(M2)
  • Transponeren: M2 = M1.transpose()

Voorbeeld: Matrix Dot Product

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

Output:

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

Slicing

Slice rijen en kolommen met array[rij_start:rij_eind, kol_start:kol_eind]:

M = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
print(M[1:3, 1:4])  # rijen 1–2, kolommen 1–3
print(M[:, 3])      # alle rijen, 4e kolom
print(M[:1, :])     # eerste rij, alle kolommen
print(M[:3, :2])    # eerste 3 rijen, eerste 2 kolommen

Output:

[[ 6  9 -12]
 [ 8 12 16]]
[  8 -12  16 -20]
[[ 2  4  6  8 10]]
[[ 2  4]
 [ 3  6]
 [ 4  8]]

Rijen en Kolommen Benaderen

# Rijen
print(M[0])  # eerste rij
print(M[-1]) # laatste rij
# Kolommen
print(M[:, 0])  # eerste kolom
print(M[:, -1]) # laatste kolom

Belangrijkste Lessons

  • Python's lijst van lijsten is adequaat voor kleine matrices, maar NumPy's ndarray schaalt veel beter.
  • Elementgewijze operaties (+, -, *, /) werken direct op NumPy-arrays.
  • Voor echte matrixvermenigvuldiging, gebruik np.dot() of de @ operator.
  • Slicing biedt krachtige manieren om sub-matrices of specifieke rijen/kolommen te extraheren.
  • Zorg er altijd voor dat matrices compatibele vormen hebben voordat je operaties uitvoert.

Python

  1. C++ Arrays Ontmaskerd: Declaratie, Initialisatie en Pointer‑Technieken
  2. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  3. Python print()-functie: Praktische handleiding met voorbeelden
  4. Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
  5. Python `format()` strings beheersen met duidelijke voorbeelden
  6. Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
  7. Python lambda-functies beheersen: praktische voorbeelden & best practices
  8. Python abs()-functie: absolute waarden berekenen voor getallen & complexe getallen
  9. Python round()-functie uitgelegd met praktische voorbeelden
  10. Python's range()-functie onder de knie: van basis tot geavanceerde use cases
  11. Python's map()-functie beheersen: syntaxis, voorbeelden en best practices