Dieser Beitrag enthält eine Einführungsdokumentation für die ersten Schritte mit NumPy in Python.
# Importieren von numpy in dieses Python-Skript importiere numpy # einige Listen erstellen und sie mit der Python-Basisbibliothek hinzufügen a = [1,2,3] b = [1,2,3] a+b
[1, 2, 3, 1, 2, 3]
# Deklarieren eines Arrays mit numpy a_np = numpy.array([1,2,3]) # Überprüfung des Typs des Arrays, um zu bestätigen, dass es sich um ein numpy-Array handelt Typ (a_np)
numpy.ndarray
# numpy-Arrays haben ein Attribut .dtype, mit dem Sie den numpy-Datentyp des Arrays überprüfen können a_np.dtype
dtype('int32')
# a_np ist vom Typ Integer; Lassen Sie versuchen, einen Float zuzuweisen a_np[0] = 13,33 a_np
Array([13, 2, 3])
# numpy-Arrays haben ein .ndim-Attribut, mit dem Sie die Anzahl der Dimensionen des Arrays sehen können a_np.ndim
1
# numpy-Arrays haben auch ein .size-Attribut; # .size ermöglicht es Ihnen, die Anzahl der Elemente zu sehen, die das Array enthält a_np.size
3
# math wird elementweise möglich, wenn numpy-Arrays verwendet werden # -- Erstellen eines zweiten numpy-Arrays, um einige elementweise mathematische Operationen zu testen b_np = numpy.array([2,3,4]) # Zusatz a_np + b_np
Array([11, -1, -1])
# Subtraktion a_np - b_np
Array([11, -1, -1])
# Multiplikation a_np * b_np
Array([26, 6, 12])
# eins hoch zum anderen a_np ** b_np
array([169, 8, 81], dtype=int32)
# Teilung a_np / b_np
Array([6.5 , 0.66666667, 0.75 ])
# modulo; a_np modulo 2 testen a_np % numpy.array([2,2,2])
array([1, 0, 1], dtype=int32)
# modulo; b_np modulo 2 testen b_np % numpy.array([2,2,2])
array([0, 1, 0], dtype=int32)
# numpy ermöglicht die Verwendung von "universellen Funktionen"; # Universelle Funktionen arbeiten elementweise mit numpy Arrays # Ein Beispiel ist .sin numpy.sin(a_np)
Array([0.42016704, 0.90929743, 0.14112001])
# Ein weiteres Beispiel ist .sqrt numpy.sqrt(a_np)
Array([3.60555128, 1.41421356, 1.73205081])
# Erstellen einer 2D-Datentabelle mit numpy c_np = numpy.array([[1,2,3], [4,5,6]]) c_np
Array([[1, 2, 3], [4, 5, 6]])
# Indizierung, dh Abrufen des in einer definierten Zelle gespeicherten Wertes; # hier: Zelle in erster Zeile, erster Spalte c_np[0][0]
1
# hier: Zelle in letzter Zeile, letzte Spalte c_np[-1][-1]
6
# hier: Zelle in zweiter Zeile, erster Spalte c_np[1][0]
4
# eine alternative Möglichkeit, das oben Gesagte zu tun c_np[1,0]
4
# Durch einfaches 1d-numpy-Array schneiden # hier: zweiten und dritten Wert in d_np erhalten d_np = numpy.array([7,9,11]) d_np[1:3]
Array([ 9, 11])
# Erstes und drittes Element erhalten d_np[0:3:2] # von:bis:Schritt
Array([ 7, 11])
# hier: Jedes andere Element in d_np erhalten d_np[::2]
Array([ 7, 11])
# hier: Jedes dritte Element erhalten d_np[::3]
Array([7])
# Wir können ein 1D-Array mit .arange erstellen, einer Methode aus dem numpy-Modul e_np = numpy.arange(0,26) #param1: from; param2: bis (letzter Wert ausgeschlossen) e_np
Array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25])
# Prüfen wir den Typ von e_np Typ (e_np)
numpy.ndarray
# numpy-Arrays können mit der Methode numpy .reshape umgeformt werden f_np = e_np.reshape(2,13) #param1: Anzahl der Zeilen; param2: Anzahl der Spalten f_np
Array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]])
# Ich kann .reshape nicht nur zum Erstellen von 2D aus 1D verwenden; # zB siehe das g_np = numpy.array([1,2,3,4,5,6,7,8,9,10,11,12]).reshape(3,2,2) g_np
Array([[[ 1, 2], [ 3, 4]], [[ 5, 6], [ 7, 8]], [[ 9, 10], [11, 12]]])
# g_np ist noch 3D; Lassen Sie einige Dimensionen aus diesem Datenwürfel herausschneiden # alle Werte in ersten Richtungen der zweiten Dimension g_np[:,0,:]
Array([[ 1, 2], [ 5, 6], [ 9, 10]])
# eine bestimmte Zelle; zuerst in allen Dimensionen g_np[0,0,0]
1
# eine bestimmte Zelle; zuletzt in allen Dimensionen g_np[-1,-1,-1]
12
# eine bestimmte Zelle; ZWEITLESTER in allen Dimensionen g_np[-2,-2,-2]
5
# Lassen Sie uns dieses erste Tutorial zu numpy mit einem weiteren Beispiel abschließen; # Ich erstelle ein 2D-Array und zeige es Ihnen Beispiel = numpy.array([[1,2,3,4,5], [1.1,2.2,3.3,4.4,5.5], [1.11,2.22,3.33,4.44,5.55], [1.111,2.222,3.333,4.444,5.555], [1.1111,2.2222,3.3333,4.4444,5.5555]]) Beispiel
array([[1. , 2. , 3. , 4. , 5. ], [1.1, 2.2, 3.3, 4.4, 5.5], [1,11, 2,22, 3,33, 4,44, 5,55], [1,111, 2,222, 3,333, 4,444, 5,555], [1.1111, 2.2222, 3.3333, 4.4444, 5.5555]])
# ermöglicht jetzt den Zugriff auf die Werte 2.2, 4.4, 2.222 und 4.444 - in nur einer Codezeile Beispiel[1::2,1::2]
array([[2.2 , 4.4 ], [2.222, 4.444]])
# Nun einige Beispiele, was passiert, wenn Sie # Kopieren nach Referenz a_np = numpy.array([1,2,3]) b_np = a_np[:1] b_np
Array([1])
# Ändern des b_np-Elements b_np[0] = 10000 b_np
Array([10000])
# Lassen Sie uns npw a_np überprüfen a_np
Array([10000, 2, 3])
# oben ist der Effekt des Kopierens durch Verweis; # das passiert, wenn wir numpy-Arrays durchschneiden; # passiert es mit der Standard-Python-Liste? a = [1,2,3] b = a[:1] b[0] = 1000 a
[1, 2, 3]
# Kopieren per Referenz findet nicht statt, wenn Standardlisten in Python geschnitten werden; # Wenn wir nicht per Referenz kopieren möchten, können wir die Methode .copy() als Teil von numpy verwenden c_np = numpy.array([1,2,3,4,5]) d_np = c_np.copy() d_np[0] = 10000 c_np[0] = 99999 # Prüfen wir jetzt c_np print("das ist c_np:" + str(c_np))
das ist c_np:[99999 2 3 4 5]
# Was ist mit d_np? d_np
Array ([10000, 2, 3, 4, 5])
# Kopieren mit .copy() ermöglicht das Arbeiten mit zwei Objekten mit unabhängigen Referenzen;
Wirtschaftsingenieur mit Interesse an Optimierung, Simulation und mathematischer Modellierung in R, SQL, VBA und Python
Leave a Reply