Hier besprechen wir verschiedene Möglichkeiten, wie wir mit Python eine Matrix erstellen können. In diesem Tutorial besprechen wir auch die verschiedenen Operationen, die an einer Matrix ausgeführt werden können. Wir werden auch das externe Modul Numpy zur Bildung einer Matrix und seine Operationen in Python behandeln.
Was ist die Matrix?
Eine Matrix ist eine Sammlung von Zahlen, die in einer rechteckigen Anordnung in Zeilen und Spalten angeordnet sind. In den Bereichen Technik, Physik, Statistik und Grafik werden Matrizen häufig verwendet, um Bildrotationen und andere Arten von Transformationen auszudrücken.
Die Matrix wird als m-x-n-Matrix bezeichnet und mit dem Symbol gekennzeichnet m x n wenn es m Zeilen und n Spalten gibt.
Erstellen einer einfachen Matrix mit Python
Methode 1: Erstellen einer Matrix mit einer Liste von Listen
Hier erstellen wir eine Matrix anhand der Liste der Listen.
Python3
matrix>=> [[>1>,>2>,>3>,>4>],> >[>5>,>6>,>7>,>8>],> >[>9>,>10>,>11>,>12>]]> print>(>'Matrix ='>, matrix)> |
>
>
Ausgabe:
Matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]>
Methode 2: Nehmen Sie Matrix-Eingaben vom Benutzer in Python entgegen
Hier nehmen wir eine Reihe von Zeilen und Spalten vom Benutzer und drucken die Matrix aus.
Python3
Row>=> int>(>input>(>'Enter the number of rows:'>))> Column>=> int>(>input>(>'Enter the number of columns:'>))> # Initialize matrix> matrix>=> []> print>(>'Enter the entries row wise:'>)> # For user input> # A for loop for row entries> for> row>in> range>(Row):> >a>=> []> ># A for loop for column entries> >for> column>in> range>(Column):> >a.append(>int>(>input>()))> >matrix.append(a)> # For printing the matrix> for> row>in> range>(Row):> >for> column>in> range>(Column):> >print>(matrix[row][column], end>=>' '>)> >print>()> |
>
>
Avl-Baum
Ausgabe:
Enter the number of rows:2 Enter the number of columns:2 Enter the entries row wise: 5 6 7 8 5 6 7 8>
Zeitkomplexität: O(n*n)
Hilfsraum: O(n*n)
Methode 3: Erstellen Sie eine Matrix mithilfe des Listenverständnisses
Das Listenverständnis ist eine elegante Möglichkeit, eine Liste in Python zu definieren und zu erstellen. Wir verwenden die Bereichsfunktion zum Drucken von 4 Zeilen und 4 Spalten.
Python3
matrix>=> [[column>for> column>in> range>(>4>)]>for> row>in> range>(>4>)]> print>(matrix)> |
>
>
Ausgabe:
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]>
Wert in einer Matrix zuweisen
Methode 1: Weisen Sie einer einzelnen Zelle in der Matrix einen Wert zu
Hier ersetzen wir eine einzelne Zelle (1 Zeile und 1 Spalte = 11) in der Matrix und weisen ihr einen Wert zu.
Python3
X>=> [[>1>,>2>,>3>], [>4>,>5>,>6>], [>7>,>8>,>9>]]> row>=> column>=> 1> X[row][column]>=> 11> print>(X)> |
>
>
Ausgabe:
[[1, 2, 3], [4, 11 , 6], [7, 8, 9]]>
Methode 2: Weisen Sie einer einzelnen Zelle mithilfe der negativen Indizierung in Matrix einen Wert zu
Hier ersetzen wir eine einzelne Zelle (-2 Zeile und -1 Spalte = 21) in der Matrix und weisen ihr einen Wert zu.
Python3
row>=> ->2> column>=> ->1> X[row][column]>=> 21> print>(X)> |
>
>
Ausgabe:
[[1, 2, 3], [4, 5, 21 ], [7, 8, 9]]>
Auf Werte in einer Matrix zugreifen
Methode 1: Zugriff auf Matrixwerte
Hier greifen wir auf Elemente einer Matrix zu, indem wir deren Zeile und Spalte übergeben.
Python3
print>(>'Matrix at 1 row and 3 column='>, X[>0>][>2>])> print>(>'Matrix at 3 row and 3 column='>, X[>2>][>2>])> |
>
>
Ausgabe:
Matrix at 1 row and 3 column= 3 Matrix at 3 row and 3 column= 9>
Methode 2: Zugriff auf Matrixwerte mithilfe negativer Indizierung
Hier greifen wir auf Elemente einer Matrix zu, indem wir ihre Zeile und Spalte bei negativer Indizierung übergeben.
Python3
import> numpy as np> X>=> [[>1>,>2>,>3>], [>4>,>5>,>6>], [>7>,>8>,>9>]]> print>(X[>->1>][>->2>])> |
>
>
Ausgabe:
8>
Mathematische Operationen mit Matrix in Python
Beispiel 1: Hinzufügen von Werten zu einer Matrix mit einer for-Schleife in Python
Hier fügen wir zwei Matrizen mithilfe der Python-For-Schleife hinzu.
Python3
# Program to add two matrices using nested loop> X>=> [[>1>,>2>,>3>],[>4>,>5>,>6>], [>7>,>8>,>9>]]> Y>=> [[>9>,>8>,>7>], [>6>,>5>,>4>], [>3>,>2>,>1>]]> result>=> [[>0>,>0>,>0>], [>0>,>0>,>0>], [>0>,>0>,>0>]]> # iterate through rows> for> row>in> range>(>len>(X)):> ># iterate through columns> >for> column>in> range>(>len>(X[>0>])):> >result[row][column]>=> X[row][column]>+> Y[row][column]> for> r>in> result:> >print>(r)> |
>
>
Ausgabe:
[10, 10, 10] [10, 10, 10] [10, 10, 10]>
Zeitkomplexität: O(n*n)
Hilfsraum: O(n*n)
Beispiel 2: Addieren und Subtrahieren von Werten zu einer Matrix mit Listenverständnis
Durchführen der grundlegenden Addition und Subtraktion mithilfe des Listenverständnisses.
Python3
Add_result>=> [[X[row][column]>+> Y[row][column]> >for> column>in> range>(>len>(X[>0>]))]> >for> row>in> range>(>len>(X))]> Sub_result>=> [[X[row][column]>-> Y[row][column]> >for> column>in> range>(>len>(X[>0>]))]> >for> row>in> range>(>len>(X))]> print>(>'Matrix Addition'>)> for> r>in> Add_result:> >print>(r)> print>(>'
Matrix Subtraction'>)> for> r>in> Sub_result:> >print>(r)> |
>
>
Ausgabe:
Matrix Addition [10, 10, 10] [10, 10, 10] [10, 10, 10] Matrix Subtraction [-8, -6, -4] [-2, 0, 2] [4, 6, 8]>
Zeitkomplexität: O(n*n)
Hilfsraum: O(n*n)
Beispiel 3: Python-Programm zum Multiplizieren und Dividieren zweier Matrizen
Durchführen der einfachen Multiplikation und Division mithilfe einer Python-Schleife.
Python3
rmatrix>=> [[>0>,>0>,>0>], [>0>,>0>,>0>], [>0>,>0>,>0>]]> for> row>in> range>(>len>(X)):> >for> column>in> range>(>len>(X[>0>])):> >rmatrix[row][column]>=> X[row][column]>*> Y[row][column]> > print>(>'Matrix Multiplication'>,)> for> r>in> rmatrix:> >print>(r)> > for> i>in> range>(>len>(X)):> >for> j>in> range>(>len>(X[>0>])):> >rmatrix[row][column]>=> X[row][column]>/>/> Y[row][column]> print>(>'
Matrix Division'>,)> for> r>in> rmatrix:> >print>(r)> |
>
Tabelle in reagieren
>
Ausgabe:
Matrix Multiplication [9, 16, 21] [24, 25, 24] [21, 16, 9] Matrix Division [0, 0, 0] [0, 1, 1] [2, 4, 9]>
Zeitkomplexität: O(n*n)
Hilfsraum: O(n*n)
In Matrix transponieren
Beispiel: Python-Programm zum Transponieren einer Matrix mithilfe einer Schleife
Die Transponierung einer Matrix erhält man, indem man Zeilen in Spalten und Spalten in Zeilen umwandelt. Mit anderen Worten, die Transponierte von A[][] wird durch Ändern von A[i][j] in A[j][i] erhalten.
Python3
X>=> [[>9>,>8>,>7>], [>6>,>5>,>4>], [>3>,>2>,>1>]]> result>=> [[>0>,>0>,>0>], [>0>,>0>,>0>], [>0>,>0>,>0>]]> # iterate through rows> for> row>in> range>(>len>(X)):> ># iterate through columns> >for> column>in> range>(>len>(X[>0>])):> >result[column][row]>=> X[row][column]> for> r>in> result:> >print>(r)> > # # Python Program to Transpose a Matrix using the list comprehension> # rez = [[X[column][row] for column in range(len(X))]> # for row in range(len(X[0]))]> # for row in rez:> # print(row)> |
>
>
Ausgabe:
[9, 6, 3] [8, 5, 2] [7, 4, 1]>
Zeitkomplexität: O(n*n)
Hilfsraum: O(n*n)
Matrix mit Numpy
Erstellen Sie eine Matrix mit Numpy
Hier erstellen wir ein Numpy-Array mit numpy.random und a Zufallsmodul .
Python3
import> numpy as np> > # 1st argument -->Zahlen im Bereich von 0 bis 9,> # 2nd argument, row = 3, col = 3> array>=> np.random.randint(>10>, size>=>(>3>,>3>))> print>(array)> |
>
>
Ausgabe:
[[2 7 5] [8 5 1] [8 4 6]]>
Mathematische Matrixoperationen in Python mit Numpy
Hier behandeln wir verschiedene mathematische Operationen wie Addition, Subtraktion, Multiplikation und Division mit Numpy.
Python3
# initializing matrices> x>=> numpy.array([[>1>,>2>], [>4>,>5>]])> y>=> numpy.array([[>7>,>8>], [>9>,>10>]])> # using add() to add matrices> print> (>'The element wise addition of matrix is : '>)> print> (numpy.add(x,y))> # using subtract() to subtract matrices> print> (>'The element wise subtraction of matrix is : '>)> print> (numpy.subtract(x,y))> print> (>'The element wise multiplication of matrix is : '>)> print> (numpy.multiply(x,y))> # using divide() to divide matrices> print> (>'The element wise division of matrix is : '>)> print> (numpy.divide(x,y))> |
>
>
Ausgabe:
The element wise addition of matrix is : [[ 8 10] [13 15]] The element wise subtraction of matrix is : [[-6 -6] [-5 -5]] The element wise multiplication of matrix is : [[ 7 16] [36 50]] The element wise division of matrix is : [[0.14285714 0.25 ] [0.44444444 0.5 ]]>
Punkt- und Kreuzprodukt mit Matrix
Hier finden wir die inneren, äußeren und Kreuzprodukte von Matrizen und Vektoren mit NumPy in Python.
Python3
X>=> [[>1>,>2>,>3>],[>4>,>5>,>6>],[>7>,>8>,>9>]]> Y>=> [[>9>,>8>,>7>], [>6>,>5>,>4>],[>3>,>2>,>1>]]> dotproduct>=> np.dot(X, Y)> print>(>'Dot product of two array is:'>, dotproduct)> dotproduct>=> np.cross(X, Y)> print>(>'Cross product of two array is:'>, dotproduct)> |
>
>
Ausgabe:
Dot product of two array is: [[ 30 24 18] [ 84 69 54] [138 114 90]] Cross product of two array is: [[-10 20 -10] [-10 20 -10] [-10 20 -10]]>
Matrixtransponierung in Python mit Numpy
Um eine Transponierungsoperation in einer Matrix durchzuführen, können wir Folgendes verwenden numpy.transpose() Methode.
Python3
matrix>=> [[>1>,>2>,>3>], [>4>,>5>,>6>]]> print>(>'
'>, numpy.transpose(matrix))> |
>
>
Ausgabe:
[[1 4][2 5][3 6]]>
Erstelle ein leere Matrix mit NumPy in Python
Initialisieren eines leeren Arrays mit dem np.zeros() .
Python3
a>=> np.zeros([>2>,>2>], dtype>=>int>)> print>(>'
Matrix of 2x2:
'>, a)> c>=> np.zeros([>3>,>3>])> print>(>'
Matrix of 3x3:
'>, c)> |
>
>
Ausgabe:
Matrix of 2x2: [[0 0] [0 0]] Matrix of 3x3: [[0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]>
Schneiden in Matrix mit Numpy
Beim Slicing werden bestimmte Zeilen und Spalten aus einer Matrix ausgewählt und anschließend eine neue Matrix erstellt, indem alle nicht ausgewählten Elemente entfernt werden. Im ersten Beispiel drucken wir die gesamte Matrix, im zweiten übergeben wir 2 als Anfangsindex, 3 als letzten Index und den Indexsprung als 1. Dasselbe wird im nächsten Ausdruck verwendet, da wir gerade den Index geändert haben Springe zu 2.
Python3
X>=> np.array([[>6>,>8>,>10>],> >[>9>,>->12>,>15>],> >[>12>,>16>,>20>],> >[>15>,>->20>,>25>]])> # Example of slicing> # Syntax: Lst[ Initial: End: IndexJump ]> print>(X[:])> print>(>'
Slicing Third Row-Second Column: '>, X[>2>:>3>,>1>])> print>(>'
Slicing Third Row-Third Column: '>, X[>2>:>3>,>2>])> |
>
>
Ausgabe:
[[ 6 8 10] [ 9 -12 15] [ 12 16 20] [ 15 -20 25]] Slicing Third Row-Second Column: [16] Slicing Third Row-Third Column: [20]>
Löschen Sie Zeilen und Spalten mit Numpy
Hier versuchen wir, Zeilen mit der Funktion np.delete() zu löschen. Im Code haben wir zunächst versucht, die 0 zu löschenThZeile, dann haben wir versucht, die 2 zu löschenndReihe und dann die 3rdReihe.
Python3
wie man in Photoshop wiederherstellt
# create an array with integers> # with 3 rows and 4 columns> a>=> np.array([[>6>,>8>,>10>],> >[>9>,>->12>,>15>],> >[>12>,>16>,>20>],> >[>15>,>->20>,>25>]])> # delete 0 th row> data>=> np.delete(a,>0>,>0>)> print>(>'data after 0 th row deleted: '>, data)> # delete 1 st row> data>=> np.delete(a,>1>,>0>)> print>(>'
data after 1 st row deleted: '>, data)> # delete 2 nd row> data>=> np.delete(a,>2>,>0>)> print>(>'
data after 2 nd row deleted: '>, data)> |
>
>
Ausgabe:
data after 0 th row deleted: [[ 9 -12 15] [ 12 16 20] [ 15 -20 25]] data after 1 st row deleted: [[ 6 8 10] [ 12 16 20] [ 15 -20 25]] data after 2 nd row deleted: [[ 6 8 10] [ 9 -12 15] [ 15 -20 25]]>
Fügen Sie Zeilen/Spalten im Numpy-Array hinzu
Wir haben bei 4 eine weitere Spalte hinzugefügtThPosition mit np.hstack .
Python3
ini_array>=> np.array([[>6>,>8>,>10>],> >[>9>,>->12>,>15>],> >[>15>,>->20>,>25>]])> # Array to be added as column> column_to_be_added>=> np.array([>1>,>2>,>3>])> # Adding column to numpy array> result>=> np.hstack((ini_array, np.atleast_2d(column_to_be_added).T))> # printing result> print>(>'
resultant array
'>,>str>(result))> |
>
>
Ausgabe:
resultant array [[ 6 8 10 1] [ 9 -12 15 2] [ 15 -20 25 3]]>