Arrays 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.
123456import 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)
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.
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.
12345678import 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}')
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:
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.
- Maak een kopie van
sales_data_2021met behulp van de juiste methode van een NumPy-array en sla deze op insales_data_2022. - Werk de laatste twee elementen van de eerste rij (die de kwartaalomzet van een product weergeven) in
sales_data_2022bij naar390en370:- 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
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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?
Awesome!
Completion rate improved to 3.7
Arrays 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.
123456import 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)
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.
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.
12345678import 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}')
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:
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.
- Maak een kopie van
sales_data_2021met behulp van de juiste methode van een NumPy-array en sla deze op insales_data_2022. - Werk de laatste twee elementen van de eerste rij (die de kwartaalomzet van een product weergeven) in
sales_data_2022bij naar390en370:- 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
Bedankt voor je feedback!
single