English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden wir lernen, wie man Matrizen in Python mit verschachtelten Listen und dem NumPy-Paket verwendet.
Eine Matrix ist eine zweidimensionale Datenstruktur, in der Zahlen nach Zeilen und Spalten angeordnet sind. Zum Beispiel:
Diese Matrix ist3x4("drei mal vier")-Matrix, da sie3Zeile4Spalten.
Python hat keine eingebauten Matrix-Typen. Aber wir können Listenlisten als Matrizen betrachten. Zum Beispiel:
A = [[1, 4, 5], [-5, 8, 9]]
Wir können diese Listenliste als Liste mit2Zeile3Spaltenmatrix.
Bevor wir fortfahren, müssen Sie unbedingt verstehenPython-Liste。
Lassen Sie uns sehen, wie wir verschachtelte Listen verwenden.
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A =", A) print("A[")1")] =", A[1]) # zweite Zeile print("A[")1][2")] =", A[1][2]) # drittes Element der zweiten Zeile print("A[0][-1] = ", A[0][-1]) # letztes Element der ersten Zeile Spalte = []; # leere Liste for feld in A: Spalte.append(feld[2]) print("3rd column =", column)
当我们运行程序时,输出将是:
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] A[1] = [-5, 8, 9, 0] A[1][2] 9 A[0][-1] 12 3rd column = [5, 9, 11]
Hier sind einige Beispiele zu Python-Matrizen, die mit geschachtelten Listen erstellt werden.
Die Verwendung von geschachtelten Listen als Matrizen kann für einfache Berechnungsaufgaben verwendet werden, aberNumPyPakete sind in Python eine bessere Methode zur Bearbeitung von Matrizen.
NumPy ist ein Softwarepaket für wissenschaftliche Berechnungen, das starke N-dimensionale Array-Objekte unterstützt. Bevor Sie NumPy verwenden, müssen Sie es zunächst installieren. Für weitere Informationen,
Besuchen Sie:Wie installiert man NumPy?
Wenn Sie Windows verwenden, laden Sie bitte Python herunter und installieren SieAnaconda-Distribution. Es enthält NumPy sowie einige andere Softwarepakete, die mit Datenwissenschaft und maschinellem Lernen zusammenhängen.
Sobald NumPy installiert ist, kann es importiert und verwendet werden.
NumPy bietet mehrdimensionale Arrays von Zahlen (tatsächlich ein Objekt). Lassen Sie uns ein Beispiel nennen:
import numpy as np a = np.array([1, 2, 3]) print(a) # Ausgabe: [1, 2, 3] print(type(a)) # Ausgabe: <class 'numpy.ndarray'>
Wie Sie sehen können, wird die NumPy-Array-Klasse ndarray genannt.
Es gibt mehrere Methoden, ein NumPy-Array zu erstellen.
1. Array aus Integer, Fließkommazahlen und Komplexen
import numpy as np A = np.array([1, 2, 3], [3, 4, 5]] print(A) A = np.array([1.1, 2, 3], [3, 4, 5]) # Fließkommazahlen-Array print(A) A = np.array([1, 2, 3], [3, 4, 5], dtype = complex) # Komplexe Array print(A)
Bei der Ausführung des Programms wird die Ausgabe wie folgt sein:
[[1 2 3] [3 4 5]] [[1.1 2. 3. ]] [3. 4. 5. ]] [[1.+0.j 2.+0.j 3.+0.j] [3.+0.j 4.+0.j 5.+0.j]]
2. Array aus Nullen und Einsen
import numpy as np zeors_array = np.zeros( (2, 3) ) print(zeors_array) ''' Ausgabe: [[0. 0. 0.] [0. 0. 0.]] ''' ones_array = np.ones( (1, 5), dtype=np.int32 ) // dtype print(ones_array) # Ausgabe: [[1 1 1 1 1]]
HierSpecify wir dtype32Bit (4Bytes). Daher kann dieses Array Werte von bis verwenden.-2-312-31-1
3. verwenden Sie arange() und shape()
import numpy as np A = np.arange(4) print('A =', A) B = np.arange(12).reshape(2, 6) print('B =', B) ''' Ausgabe: A = [0 1 2 3] B = [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] '''
Erfahren Sie mehr darüberErstellen Sie ein NumPy-ArrayWeitere Informationen über andere Methoden bereitgestellt.
Oben haben wir Ihnen3Ein Beispiel: Die Addition von zwei Matrizen, die Multiplikation von zwei Matrizen und die Transponierung einer Matrix. Bevor wir diese Programme geschrieben haben, haben wir Nested Listen verwendet. Lassen Sie uns sehen, wie wir die gleiche Aufgabe mit NumPy-Arrays erledigen können.
Wir verwenden+Der Operator addiert die entsprechenden Elemente von zwei NumPy-Matrizen.
import numpy as np A = np.array([2, 4], [5, -6]] B = np.array([9, -3], [3, 6]] C = A + B # Elemente kluge Addition print(C) ''' Ausgabe: [[11 1] [ 8 0]] '''
Die Multiplikation von zwei Matrizen
Um zwei Matrizen zu multiplizieren, verwenden wir den dot()-Methoden. Mehr Informationen übernumpy.dotMehr Informationen darüber, wie es funktioniert.
Hinweis: *Für die Multiplikation von Arrays (das Produkt der entsprechenden Elemente beider Arrays), nicht für die Matrixmultiplikation.
import numpy as np A = np.array([3, 6, 7], [5, -3, 0]]) B = np.array([1, 1], [2, 1], [3, -3]] C = A.dot(B) print(C) ''' Ausgabe: [[ 36 -12] [ -1 2]] '''
Wir verwendennumpy.transposeBerechnung der Transponierten der Matrix.
import numpy as np A = np.array([1, 1], [2, 1], [3, -3]] print(A.transpose()) ''' Ausgabe: [[ 1 2 3] [ 1 1 -3]] '''
Wie Sie sehen können, macht NumPy unsere Aufgabe einfacher.
Wie bei einer Liste können wir mit Indizes auf die Elemente der Matrix zugreifen. Lassen Sie uns mit einem ein-dimensionalen NumPy-Array beginnen.
import numpy as np A = np.array([2, 4, 6, 8, 10]) print("A[0] =", A[0]) # Erstes Element print("A[")2")] =", A[2")] # Drittes Element print("A[")-1")] =", A[-1")] # Letztes Element
Bei der Ausführung des Programms wird die Ausgabe wie folgt sein:
A[0] = 2 A[2] 6 A[-1] 10
Nun sehen wir uns an, wie man auf die Elemente eines zweidimensionalen Arrays (im Grunde eine Matrix) zugreift.
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] # Erstes Element der ersten Zeile print("A[0][0] =", A[0][0]) # Drittes Element der zweiten Zeile print("A[")1][2")] =", A[1][2]) # Letztes Element der letzten Zeile print("A[")-1][-1")] =", A[-1][-1])
当我们运行程序时,输出将是:
A[0][0] = 1 A[1][2] 9 A[-1][-1] 19
Zugriff auf die Zeilen der Matrix
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A[0] =", A[0]) # Erste Zeile print("A[")2")] =", A[2")] # Dritter Zeile print("A[")-1")] =", A[-1")] # Letzte Zeile (3rd row in this case)
当我们运行程序时,输出将是:
A[0] = [1, 4, 5, 12] A[2] = [-6, 7, 11, 19] A[-1] = [-6, 7, 11, 19]
Zugriff auf die Spalten der Matrix
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A[:,0] =", A[:,0]) # Erster Spalte print("A[:,3=", A[:,3")] # Vierter Spalte print("A[:,-1=", A[:,-1]) #Last Column (4th column in this case)
当我们运行程序时,输出将是:
A[:,0] = [ 1 -5 -6] A[:,3] = [12 0 19] A[:,-1] = [12 0 19]
如果您不知道上面的代码如何工作,请阅读本文矩阵部分的切片。
一维NumPy数组的切片类似于列表。如果您不知道列表切片的工作原理,请访问了解Python的切片符号。
让我们举个实例:
import numpy as np letters = np.array([1, 3, 5, 7, 9, 7, 5]) # 3rd to 5th elements print(letters[2:5]) #输出: [5, 7, 9] # 1st to 4th elements print(letters[:-5]) #输出: [1, 3] # 6th to last elements print(letters[5:]) #输出:[7, 5] # 1st to last elements print(letters[:]) #输出:[1, 3, 5, 7, 9, 7, 5] #reversing a list print(letters[::-1]) #输出:[5, 7, 9, 7, 5, 3, 1]
现在,让我们看看如何对矩阵进行切片。
import numpy as np A = np.array([1, 4, 5, 12, 14], [-5, 8, 9, 0, 17], [-6, 7, 11, 19, 21]] print(A[:2, :4]) #两行,四列 ''' Output: [[ 1 4 5 12] [-5 8 9 0]] ''' print(A[:1,]) #第一行,所有列 ''' Output: [[ 1 4 5 12 14]] ''' print(A[:,2]) #所有的行,第二列 ''' Output: [ 5 9 11] ''' print(A[:, 2:5]) #所有的行,第三到第五列 '''Output: [[ 5 12 14] [ 9 0 17] [11 19 21]] '''
正如您看到的,使用NumPy(而不是嵌套列表)可以更轻松地处理矩阵,而且我们甚至都没有涉及基础知识。我们建议您详细研究NumPy软件包,尤其是当您尝试将Python用于数据科学/分析时。