Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X
X

Wählen Sie Ihre Währung

Türk Lirası $ US Dollar Euro
X
X

Wählen Sie Ihre Währung

Türk Lirası $ US Dollar Euro

Wissensdatenbank


Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR

Was ist NumPy?

Was ist NumPy und wofür wird es verwendet?

NumPy (Numerical Python) ist eine Bibliothek, die für die Programmiersprache Python entwickelt wurde und im Bereich des wissenschaftlichen Rechnens weit verbreitet ist. Im Wesentlichen ermöglicht sie die Durchführung hochleistungsfähiger mathematischer Operationen auf mehrdimensionalen Arrays (ndarray). NumPy ist ein unverzichtbares Werkzeug in der Datenanalyse, im maschinellen Lernen, in technischen Simulationen und in vielen anderen wissenschaftlichen Bereichen. Dank seiner effizienten Datenspeicherungs- und -verarbeitungsfunktionen verbessert es die Leistung bei der Arbeit mit großen Datensätzen erheblich.

  • Hauptziel: Beschleunigung und Vereinfachung numerischer Berechnungen.
  • Mehrdimensionale Arrays: Bietet mehrdimensionale Arrays (ndarray) mit homogenem Datentyp.
  • Mathematische Funktionen: Bietet eine breite Palette mathematischer Funktionen für Array-Operationen (Trigonometrie, Logarithmus, statistische Funktionen usw.).
  • Leistung: Bietet dank in C und Fortran geschriebenen optimierten Codes eine hohe Leistung.

Warum sollten wir NumPy verwenden?

Die Verwendung von NumPy hat viele Vorteile. Hier sind die wichtigsten:

  1. Geschwindigkeit: NumPy ist im Vergleich zu Python-Listen viel schneller. Dies liegt daran, dass NumPy-Arrays Daten in zusammenhängenden Speicherblöcken speichern und vektorisierte Operationen verwenden. Dies erhöht die Leistung, indem Schleifen vermieden werden.
  2. Speichereffizienz: NumPy-Arrays verbrauchen weniger Speicher als Python-Listen. Dies liegt daran, dass NumPy-Arrays Daten des gleichen Typs speichern, was die Speichernutzung optimiert.
  3. Benutzerfreundlichkeit: NumPy bietet eine intuitive und benutzerfreundliche Schnittstelle für Array-Operationen. Verschiedene mathematische Funktionen und Operatoren ermöglichen die einfache Durchführung von Operationen auf Arrays.
  4. Umfangreiche Funktionen: NumPy bietet eine breite Palette von Funktionen für lineare Algebra, Fourier-Transformationen, Zufallszahlengenerierung und viele andere wissenschaftliche Berechnungen.
  5. Integration: NumPy lässt sich nahtlos in andere wissenschaftliche Rechenbibliotheken wie SciPy, Pandas und Matplotlib integrieren. Dies erleichtert die Durchführung komplexerer Analysen und Visualisierungen.

Wie werden NumPy-Arrays (ndarray) erstellt?

Es gibt verschiedene Möglichkeiten, NumPy-Arrays zu erstellen. Hier sind die am häufigsten verwendeten Methoden:

  1. Konvertierung aus Listen: Sie können Python-Listen in NumPy-Arrays konvertieren.
  2. Verwendung von NumPy-Funktionen: NumPy bietet spezielle Funktionen zum Erstellen von Arrays (array(), zeros(), ones(), arange(), linspace() usw.).

Beispiel 1: Array aus einer Liste erstellen


import numpy as np

my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array) # Output: [1 2 3 4 5]
print(type(my_array)) # Output: <class 'numpy.ndarray'>

Beispiel 2: Erstellung von Arrays mit NumPy-Funktionen


import numpy as np

# Erstellung eines Arrays gefüllt mit Nullen
zeros_array = np.zeros((2, 3)) # 2x3 Nullmatrix
print(zeros_array)
# Ausgabe:
# [[0. 0. 0.]
#  [0. 0. 0.]]

# Erstellung eines Arrays gefüllt mit Einsen
ones_array = np.ones((3, 2)) # 3x2 Einser-Matrix
print(ones_array)
# Ausgabe:
# [[1. 1.]
#  [1. 1.]
#  [1. 1.]]

# Erstellung eines Arrays in einem bestimmten Bereich
arange_array = np.arange(0, 10, 2) # Zahlen von 0 bis 10, in 2er-Schritten
print(arange_array) # Ausgabe: [0 2 4 6 8]

# Erstellung einer bestimmten Anzahl gleichmäßig verteilter Zahlen
linspace_array = np.linspace(0, 1, 5) # 5 gleichmäßig verteilte Zahlen zwischen 0 und 1
print(linspace_array) # Ausgabe: [0.   0.25 0.5  0.75 1.  ]

Was sind die grundlegenden Eigenschaften von NumPy-Arrays?

Die grundlegenden Eigenschaften von NumPy-Arrays sind:

  • ndim: Die Anzahl der Dimensionen des Arrays (Rang).
  • shape: Ein Tupel, das die Anzahl der Elemente in jeder Dimension des Arrays angibt.
  • size: Die Gesamtzahl der Elemente im Array.
  • dtype: Der Datentyp der Elemente im Array.
  • itemsize: Die Größe jedes Elements in Bytes.
  • data: Die Startadresse des Speicherblocks, der die Daten des Arrays enthält.

Beispiel: Anzeigen von Array-Eigenschaften


import numpy as np

my_array = np.array([[1, 2, 3], [4, 5, 6]])

print("Anzahl der Dimensionen (ndim):", my_array.ndim) # Ausgabe: Anzahl der Dimensionen (ndim): 2
print("Form (shape):", my_array.shape) # Ausgabe: Form (shape): (2, 3)
print("Anzahl der Elemente (size):", my_array.size) # Ausgabe: Anzahl der Elemente (size): 6
print("Datentyp (dtype):", my_array.dtype) # Ausgabe: Datentyp (dtype): int64 (oder kann je nach System unterschiedlich sein)
print("Elementgröße (itemsize):", my_array.itemsize) # Ausgabe: Elementgröße (itemsize): 8 (für int64)

Welche Operationen können an NumPy-Arrays durchgeführt werden?

An NumPy-Arrays können eine Vielzahl von Operationen durchgeführt werden. Hier sind die am häufigsten verwendeten Operationen:

  • Arithmetische Operationen: Addition, Subtraktion, Multiplikation, Division usw.
  • Mathematische Funktionen: Trigonometrie, Logarithmus, Exponentialfunktionen usw.
  • Statistische Operationen: Mittelwert, Median, Standardabweichung, Varianz usw.
  • Lineare Algebra Operationen: Matrixmultiplikation, inverse Matrix, Determinante usw.
  • Umformen (Reshape): Ändern der Dimensionen des Arrays.
  • Verketten (Concatenate): Arrays zusammenführen.
  • Aufteilen (Split): Arrays aufteilen.
  • Filtern (Filtering): Auswählen von Elementen, die bestimmte Bedingungen erfüllen.

Beispiel 1: Arithmetische Operationen


import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

print("Addition:", a + b) # Output: Addition: [5 7 9]
print("Subtraktion:", a - b) # Output: Subtraktion: [-3 -3 -3]
print("Multiplikation:", a * b) # Output: Multiplikation: [ 4 10 18]
print("Division:", a / b) # Output: Division: [0.25 0.4  0.5 ]

Beispiel 2: Mathematische Funktionen


import numpy as np

a = np.array([0, np.pi/2, np.pi])

print("Sinus:", np.sin(a)) # Output: Sinus: [0.000e+00 1.000e+00 1.225e-16] (ungefähr [0, 1, 0])
print("Kosinus:", np.cos(a)) # Output: Kosinus: [ 1.000e+00 6.123e-17 -1.000e+00] (ungefähr [1, 0, -1])

Beispiel 3: Statistische Operationen


import numpy as np

a = np.array([1, 2, 3, 4, 5])

print("Mittelwert:", np.mean(a)) # Output: Mittelwert: 3.0
print("Median:", np.median(a)) # Output: Median: 3.0
print("Standardabweichung:", np.std(a)) # Output: Standardabweichung: 1.4142135623730951

Beispiel 4: Umformen (Reshape)


import numpy as np

a = np.arange(12) # Array bestehend aus Zahlen von 0 bis 12 (12 ausgeschlossen)
print("Original-Array:", a) # Output: Original-Array: [ 0  1  2  3  4  5  6  7  8  9 10 11]

b = a.reshape(3, 4) # Umformen in die Größe 3x4
print("Umgeformtes Array:\n", b)
# Output:
# Umgeformtes Array:
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

Beispiel 5: Filtern (Filtering)


import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])

# Auswahl der Elemente, die größer als 3 sind
filtered_array = a[a > 3]
print("Gefiltertes Array:", filtered_array) # Output: Gefiltertes Array: [4 5 6]

Was sind die Unterschiede zwischen NumPy und Python-Listen?

Die Hauptunterschiede zwischen NumPy-Arrays und Python-Listen sind:

Eigenschaft NumPy-Array (ndarray) Python-Liste
Datentyp Homogen (Daten vom gleichen Typ) Heterogen (Daten von unterschiedlichen Typen)
Speichernutzung Verbraucht weniger Speicher Verbraucht mehr Speicher
Performance Schneller (vektorisierte Operationen) Langsamer (kann Schleifen erfordern)
Mathematische Operationen Für mathematische Operationen optimiert Nicht für mathematische Operationen optimiert
Dimension Kann mehrdimensional sein Eindimensional (mehrdimensional kann durch verschachtelte Listen simuliert werden)

NumPy-Anwendungsbeispiele aus dem echten Leben

NumPy wird in vielen verschiedenen Bereichen häufig verwendet. Hier sind einige Beispiele:

  • Bildverarbeitung: Bilder können als numerische Matrizen dargestellt werden. NumPy wird verwendet, um Bildverarbeitungsalgorithmen zu entwickeln (z. B. Filterung, Kantenerkennung, Segmentierung).
  • Audioverarbeitung: Audiosignale können als numerische Sequenzen dargestellt werden. NumPy wird verwendet, um Audioverarbeitungsalgorithmen zu entwickeln (z. B. Fourier-Analyse, Filterung, Rauschunterdrückung).
  • Finanzanalyse: Finanzdaten (Aktienkurse, Wechselkurse usw.) können als numerische Sequenzen dargestellt werden. NumPy wird verwendet, um Finanzanalysealgorithmen zu entwickeln (z. B. Risikoanalyse, Portfoliooptimierung).
  • Maschinelles Lernen: Algorithmen für maschinelles Lernen verarbeiten Daten auf numerischen Matrizen. NumPy wird verwendet, um Modelle für maschinelles Lernen zu trainieren und zu bewerten.
  • Simulation: Wissenschaftliche und technische Simulationen erfordern oft numerische Berechnungen. NumPy wird verwendet, um solche Simulationen zu entwickeln (z. B. Strömungsmechanik, Strukturanalysen).

Fallstudie: Bildverarbeitung

In einem Bildverarbeitungsprojekt kann NumPy verwendet werden, um ein Bild zu verwischen. Das Bild wird als NumPy-Array dargestellt, und der Weichzeichnungsprozess wird durch Anwenden eines Faltungsfilters durchgeführt. Dieser Vorgang ersetzt den Wert jedes Pixels durch den gewichteten Durchschnitt der Werte der benachbarten Pixel. Dank der vektorisierten Operationen von NumPy kann dieser Vorgang sehr schnell durchgeführt werden.


import numpy as np
from PIL import Image

# Bild laden
image = Image.open("ornek_resim.jpg").convert('L') # In Graustufen konvertieren
image_array = np.array(image)

# Weichzeichnungsfilter definieren (z. B. 3x3-Mittelwertfilter)
blur_filter = np.array([[1/9, 1/9, 1/9],
                        [1/9, 1/9, 1/9],
                        [1/9, 1/9, 1/9]])

# Faltungsvorgang durchführen (einfaches Beispiel)
def convolve(image, filter):
    height, width = image.shape
    filter_height, filter_width = filter.shape
    result = np.zeros_like(image)

    for i in range(height - filter_height + 1):
        for j in range(width - filter_width + 1):
            result[i, j] = np.sum(image[i:i+filter_height, j:j+filter_width] * filter)

    return result

blurred_image = convolve(image_array, blur_filter)

# Ergebnis anzeigen (mit PIL)
blurred_image = Image.fromarray(blurred_image.astype(np.uint8)) #In den richtigen Datentyp konvertieren
blurred_image.show()

Visuelle Beschreibung:

Im obigen Beispiel repräsentiert `image_array` eine Matrix. Der Weichzeichnungsfilter (`blur_filter`) wird über diese Matrix geschoben (gefaltet), um eine neue Matrix zu erstellen. Diese neue Matrix repräsentiert das weichgezeichnete Bild. Der Wert jedes Pixels wird von den Werten der benachbarten Pixel beeinflusst, wodurch das Bild weicher erscheint.

NumPy-Tipps und -Tricks

  • Vektorisierte Operationen verwenden: Vermeiden Sie Schleifen und verwenden Sie die vektorisierten Operationen von NumPy. Dies verbessert die Leistung erheblich.
  • Den richtigen Datentyp wählen: Die richtige Wahl des Datentyps optimiert die Speichernutzung und verbessert die Leistung. Wenn Sie beispielsweise mit ganzen Zahlen arbeiten, können Sie anstelle von `int64` auch `int32` oder `int16` verwenden.
  • Speicher effizient nutzen: Achten Sie bei der Arbeit mit großen Arrays auf die Speichernutzung. Vermeiden Sie unnötige Kopien und verwenden Sie "In-Place"-Operationen (z. B. `a += 1`).
  • Broadcasting verstehen: Broadcasting ist ein leistungsstarker Mechanismus, der es ermöglicht, Operationen auf Arrays unterschiedlicher Größe durchzuführen. Das Verständnis von Broadcasting hilft Ihnen, komplexere Operationen einfacher durchzuführen.
  • Die NumPy-Dokumentation lesen: Die NumPy-Dokumentation ist die beste Quelle, um alle Funktionen und Eigenschaften der Bibliothek zu verstehen.

Broadcasting-Beispiel:


import numpy as np

a = np.array([1, 2, 3])
b = 2

# Die Zahl b wird auf die gleiche Größe wie das Array a "broadcasted"
print(a + b) # Output: [3 4 5]

Faktoren, die die NumPy-Leistung beeinflussen

Es gibt mehrere Faktoren, die die NumPy-Leistung beeinflussen:

  • Array-Größe: Je größer das Array, desto länger dauern die Operationen.
  • Datentyp: Verschiedene Datentypen haben unterschiedliche Speicheranforderungen und Verarbeitungsgeschwindigkeiten.
  • Operationstyp: Einige Operationen (z. B. Matrixmultiplikation) sind komplexer als andere (z. B. Addition) und dauern länger.
  • Speicherzugriff: Wie die Daten im Speicher organisiert sind, kann die Leistung beeinflussen. NumPy-Arrays speichern Daten in zusammenhängenden Speicherblöcken, was die Leistung verbessert.
  • Hardware: Hardwareeigenschaften wie Prozessorgeschwindigkeit, Speichermenge und Festplattengeschwindigkeit beeinflussen die Leistung.
Faktor Beschreibung Auswirkung auf die Leistung
Array-Größe Anzahl der Elemente im Array Operationen dauern bei großen Arrays länger
Datentyp Datentyp der Elemente im Array (z. B. int, float) Verschiedene Datentypen haben unterschiedliche Speicheranforderungen und Verarbeitungsgeschwindigkeiten
Operationstyp Durchgeführte mathematische Operation (z. B. Addition, Multiplikation, Matrixmultiplikation) Komplexe Operationen dauern länger
Speicherzugriff Wie die Daten im Speicher angeordnet sind Zusammenhängende Speicherblöcke verbessern die Leistung
Hardware Prozessor, Speicher, Festplattengeschwindigkeit Bessere Hardware bietet eine bessere Leistung

Fazit

NumPy ist eine leistungsstarke und vielseitige Bibliothek für wissenschaftliches Rechnen mit Python. Dank seiner hohen Leistung, Benutzerfreundlichkeit und breiten Funktionspalette ist es ein unverzichtbares Werkzeug in den Bereichen Datenanalyse, maschinelles Lernen und anderen wissenschaftlichen Bereichen. In diesem Artikel haben wir die grundlegenden Konzepte, Eigenschaften und Anwendungsbeispiele von NumPy behandelt. Wir hoffen, dass diese Informationen Ihnen helfen, NumPy besser zu verstehen und in Ihren Projekten zu verwenden.

 

Finden Sie nicht die Informationen, die Sie suchen?

Ticket erstellen
Fanden Sie es nützlich?
(363 mal angesehen / 122 Kunden fanden es hilfreich)

Call now to get more detailed information about our products and services.

Top