Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Arrays Kopiëren | Veelgebruikte NumPy-Functies
Ultieme NumPy

bookArrays Kopiëren

Vaak is het nodig om een kopie van een array te maken om wijzigingen aan te brengen zonder de originele array te beïnvloeden.

Eenvoudige toewijzing

Eerst bespreken we waarom we niet eenvoudigweg een andere variabele kunnen maken met array_2 = array_1, waarbij array_1 onze originele array is.

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

We hebben de waarde van het eerste element van array_2 gewijzigd naar 10, maar deze toewijzing heeft ook de waarde van het eerste element van array_1 gewijzigd naar 10.

Note
Opmerking

Met array_2 = array_1 wordt er geen nieuwe array aangemaakt; in plaats daarvan wordt er een referentie naar dezelfde array in het geheugen gemaakt. Hierdoor zullen alle wijzigingen aan array_2 ook effect hebben op array_1.

Om dit probleem op te lossen, zouden we array_2 = np.array([1, 2, 3]) kunnen schrijven, maar dat betekent dat dezelfde code twee keer geschreven moet worden. Onthoud het belangrijkste principe in programmeren: Herhaal jezelf niet.

ndarray.copy() Methode

Gelukkig heeft NumPy een ndarray.copy() methode als oplossing voor dit probleem.

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

Nu hebben we een nieuwe array voor array_2 gemaakt met dezelfde elementen als array_1.

Voor 2D arrays is de kopieerprocedure exact hetzelfde.

numpy.copy() Functie

In plaats van de .copy() methode kunnen we ook de copy() functie gebruiken, die de array als parameter neemt: array_2 = np.copy(array_1).

Zowel de functie als de methode werken hetzelfde; echter, er is één nuance. Beide hebben de parameter order, die de geheugenindeling van de array specificeert, maar hun standaardwaarden verschillen.

De onderstaande afbeelding toont de structuur van de array sales_data_2021 die in de opdracht wordt gebruikt:

Taak

Swipe to start coding

Je analyseert de kwartaalomzetgegevens van een bedrijf voor het jaar 2021. De gegevens zijn opgeslagen in een NumPy-array genaamd sales_data_2021, waarbij elke rij een specifiek product vertegenwoordigt en elke kolom de kwartaalomzet voor dat product.

  1. Maak een kopie van sales_data_2021 met behulp van de juiste methode van een NumPy-array en sla deze op in sales_data_2022.
  2. Werk de laatste twee elementen van de eerste rij (die de kwartaalomzet van een product weergeven) in sales_data_2022 bij naar 390 en 370:
    • Gebruik een positieve index om de rij aan te duiden;
    • Gebruik een slice met alleen een negatieve start-waarde om de laatste twee elementen te indexeren.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain the difference between the .copy() method and np.copy() function in more detail?

What does the 'order' parameter do when copying arrays?

Can you show how to copy a 2D array using these methods?

close

Awesome!

Completion rate improved to 3.7

bookArrays Kopiëren

Veeg om het menu te tonen

Vaak is het nodig om een kopie van een array te maken om wijzigingen aan te brengen zonder de originele array te beïnvloeden.

Eenvoudige toewijzing

Eerst bespreken we waarom we niet eenvoudigweg een andere variabele kunnen maken met array_2 = array_1, waarbij array_1 onze originele array is.

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

We hebben de waarde van het eerste element van array_2 gewijzigd naar 10, maar deze toewijzing heeft ook de waarde van het eerste element van array_1 gewijzigd naar 10.

Note
Opmerking

Met array_2 = array_1 wordt er geen nieuwe array aangemaakt; in plaats daarvan wordt er een referentie naar dezelfde array in het geheugen gemaakt. Hierdoor zullen alle wijzigingen aan array_2 ook effect hebben op array_1.

Om dit probleem op te lossen, zouden we array_2 = np.array([1, 2, 3]) kunnen schrijven, maar dat betekent dat dezelfde code twee keer geschreven moet worden. Onthoud het belangrijkste principe in programmeren: Herhaal jezelf niet.

ndarray.copy() Methode

Gelukkig heeft NumPy een ndarray.copy() methode als oplossing voor dit probleem.

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

Nu hebben we een nieuwe array voor array_2 gemaakt met dezelfde elementen als array_1.

Voor 2D arrays is de kopieerprocedure exact hetzelfde.

numpy.copy() Functie

In plaats van de .copy() methode kunnen we ook de copy() functie gebruiken, die de array als parameter neemt: array_2 = np.copy(array_1).

Zowel de functie als de methode werken hetzelfde; echter, er is één nuance. Beide hebben de parameter order, die de geheugenindeling van de array specificeert, maar hun standaardwaarden verschillen.

De onderstaande afbeelding toont de structuur van de array sales_data_2021 die in de opdracht wordt gebruikt:

Taak

Swipe to start coding

Je analyseert de kwartaalomzetgegevens van een bedrijf voor het jaar 2021. De gegevens zijn opgeslagen in een NumPy-array genaamd sales_data_2021, waarbij elke rij een specifiek product vertegenwoordigt en elke kolom de kwartaalomzet voor dat product.

  1. Maak een kopie van sales_data_2021 met behulp van de juiste methode van een NumPy-array en sla deze op in sales_data_2022.
  2. Werk de laatste twee elementen van de eerste rij (die de kwartaalomzet van een product weergeven) in sales_data_2022 bij naar 390 en 370:
    • Gebruik een positieve index om de rij aan te duiden;
    • Gebruik een slice met alleen een negatieve start-waarde om de laatste twee elementen te indexeren.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3
single

single

some-alt