Einführung in das NumPy-Modul in Python

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;

You May Also Like

Leave a Reply

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.