English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python-Basisanleitung

Python-Flusskontrolle

Python-Funktion

Python-Datentypen

Dateioperationen in Python

Python-Objekte und Klassen

Python-Daten und Zeit

Erweiterte Python-Kenntnisse

Python-Referenzhandbuch

Python 矩阵和NumPy数组

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

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

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.

Wie erstellt man ein NumPy-Array?

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.

Matrixoperationen

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.

Addition von Matrizen

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

Matrixtransponiert

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.

Zugriff auf Matrixelemente, Zeile und Spalte

Zugriff auf Matrixelemente

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用于数据科学/分析时。

NumPy资源,您可能会发现有帮助: