logo

Python – Matrix

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.

Matrix in Python

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