Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Kopieren von Arrays | Häufig Verwendete NumPy-Funktionen
Ultimatives NumPy

bookKopieren von Arrays

Oft ist es notwendig, eine Kopie eines Arrays zu erstellen, um Änderungen vorzunehmen, ohne das Originalarray zu beeinflussen.

Einfache Zuweisung

Zunächst wird erläutert, warum nicht einfach eine weitere Variable mit array_2 = array_1 erstellt werden kann, wobei array_1 das Originalarray ist.

123456
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)
copy

Wir haben den Wert des ersten Elements von array_2 auf 10 geändert, aber diese Zuweisung hat auch den Wert des ersten Elements von array_1 auf 10 geändert.

Note
Hinweis

Mit array_2 = array_1 wird kein neues Array erstellt; stattdessen wird eine Referenz auf dasselbe Array im Speicher erzeugt. Daher wirken sich alle Änderungen an array_2 auch auf array_1 aus.

Um dieses Problem zu lösen, könnten wir array_2 = np.array([1, 2, 3]) schreiben, aber das würde bedeuten, denselben Code zweimal zu schreiben. Merke dir das wichtigste Prinzip beim Programmieren: Don't repeat yourself.

Methode ndarray.copy()

Glücklicherweise bietet NumPy mit der Methode ndarray.copy() eine Lösung für dieses Problem.

12345678
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')
copy

Nun wurde ein neues Array für array_2 erstellt, das die gleichen Elemente wie array_1 enthält.

Für 2D-Arrays ist das Kopierverfahren exakt dasselbe.

numpy.copy()-Funktion

Anstelle der .copy()-Methode kann auch die copy()-Funktion verwendet werden, die das Array als Parameter übernimmt: array_2 = np.copy(array_1).

Sowohl die Funktion als auch die Methode arbeiten identisch; es gibt jedoch eine Nuance. Beide verfügen über den Parameter order, der das Speicherlayout des Arrays bestimmt, jedoch sind deren Standardwerte unterschiedlich.

Die folgende Abbildung zeigt die Struktur des in der Aufgabe verwendeten Arrays sales_data_2021:

Aufgabe

Swipe to start coding

Sie analysieren die Quartalsumsatzzahlen eines Unternehmens für das Jahr 2021. Die Daten sind in einem NumPy-Array namens sales_data_2021 gespeichert, wobei jede Zeile ein bestimmtes Produkt und jede Spalte die Quartalsumsätze dieses Produkts darstellt.

  1. Erstellen Sie eine Kopie von sales_data_2021 mit der entsprechenden Methode eines NumPy-Arrays und speichern Sie diese in sales_data_2022.
  2. Aktualisieren Sie die letzten beiden Elemente der ersten Zeile (die die Quartalsumsätze eines Produkts repräsentiert) in sales_data_2022 auf 390 und 370:
    • Verwenden Sie einen positiven Index, um die Zeile anzugeben;
    • Verwenden Sie einen Slice mit nur einem negativen start-Wert, um die letzten beiden Elemente zu indizieren.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

Awesome!

Completion rate improved to 3.7

bookKopieren von Arrays

Swipe um das Menü anzuzeigen

Oft ist es notwendig, eine Kopie eines Arrays zu erstellen, um Änderungen vorzunehmen, ohne das Originalarray zu beeinflussen.

Einfache Zuweisung

Zunächst wird erläutert, warum nicht einfach eine weitere Variable mit array_2 = array_1 erstellt werden kann, wobei array_1 das Originalarray ist.

123456
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)
copy

Wir haben den Wert des ersten Elements von array_2 auf 10 geändert, aber diese Zuweisung hat auch den Wert des ersten Elements von array_1 auf 10 geändert.

Note
Hinweis

Mit array_2 = array_1 wird kein neues Array erstellt; stattdessen wird eine Referenz auf dasselbe Array im Speicher erzeugt. Daher wirken sich alle Änderungen an array_2 auch auf array_1 aus.

Um dieses Problem zu lösen, könnten wir array_2 = np.array([1, 2, 3]) schreiben, aber das würde bedeuten, denselben Code zweimal zu schreiben. Merke dir das wichtigste Prinzip beim Programmieren: Don't repeat yourself.

Methode ndarray.copy()

Glücklicherweise bietet NumPy mit der Methode ndarray.copy() eine Lösung für dieses Problem.

12345678
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')
copy

Nun wurde ein neues Array für array_2 erstellt, das die gleichen Elemente wie array_1 enthält.

Für 2D-Arrays ist das Kopierverfahren exakt dasselbe.

numpy.copy()-Funktion

Anstelle der .copy()-Methode kann auch die copy()-Funktion verwendet werden, die das Array als Parameter übernimmt: array_2 = np.copy(array_1).

Sowohl die Funktion als auch die Methode arbeiten identisch; es gibt jedoch eine Nuance. Beide verfügen über den Parameter order, der das Speicherlayout des Arrays bestimmt, jedoch sind deren Standardwerte unterschiedlich.

Die folgende Abbildung zeigt die Struktur des in der Aufgabe verwendeten Arrays sales_data_2021:

Aufgabe

Swipe to start coding

Sie analysieren die Quartalsumsatzzahlen eines Unternehmens für das Jahr 2021. Die Daten sind in einem NumPy-Array namens sales_data_2021 gespeichert, wobei jede Zeile ein bestimmtes Produkt und jede Spalte die Quartalsumsätze dieses Produkts darstellt.

  1. Erstellen Sie eine Kopie von sales_data_2021 mit der entsprechenden Methode eines NumPy-Arrays und speichern Sie diese in sales_data_2022.
  2. Aktualisieren Sie die letzten beiden Elemente der ersten Zeile (die die Quartalsumsätze eines Produkts repräsentiert) in sales_data_2022 auf 390 und 370:
    • Verwenden Sie einen positiven Index, um die Zeile anzugeben;
    • Verwenden Sie einen Slice mit nur einem negativen start-Wert, um die letzten beiden Elemente zu indizieren.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
single

single

some-alt