Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Kopiera Arrayer | Vanligt Använda NumPy-Funktioner
Ultimata NumPy

Svep för att visa menyn

book
Kopiera Arrayer

Ofta behöver du skapa en kopia av en array för att göra ändringar utan att påverka den ursprungliga arrayen.

Enkel Tilldelning

Först kommer vi att diskutera varför vi inte bara kan skapa en annan variabel med array_2 = array_1, där array_1 är vår ursprungliga array.

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

Vi ändrade värdet på det första elementet i array_2 till 10, men denna tilldelning ändrade också värdet på det första elementet i array_1 till 10.

Notera

Med array_2 = array_1, skapar du inte en ny array; istället skapar du en referens till samma array i minnet. Som ett resultat kommer alla ändringar som görs i array_2 också att påverka array_1.

För att lösa detta problem kan vi skriva array_2 = np.array([1, 2, 3]), men det skulle innebära att skriva samma kod två gånger. Kom ihåg den viktiga principen i kodning: Upprepa dig inte.

ndarray.copy() Metod

Lyckligtvis har NumPy en ndarray.copy() metod som en lösning på detta 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

Nu har vi skapat en ny array för array_2 med samma element som array_1.

För 2D-arrayer är kopieringsproceduren exakt densamma.

numpy.copy() Funktion

Istället för .copy() metoden, kan vi också använda copy() funktionen, som tar arrayen som sin parameter: array_2 = np.copy(array_1).

Både funktionen och metoden fungerar likadant; dock finns det en nyans. De har båda parametern order, som specificerar arrayens minneslayout, men deras standardvärden är olika.

Bilden nedan visar strukturen av sales_data_2021 arrayen som används i uppgiften:

Uppgift

Swipe to start coding

Du analyserar kvartalsförsäljningsdata för ett företag för år 2021. Data lagras i en NumPy-array som heter sales_data_2021, där varje rad representerar en specifik produkt, och varje kolumn representerar kvartalsförsäljningen för den produkten.

  1. Skapa en kopia av sales_data_2021 med hjälp av den lämpliga metoden för en NumPy-array och lagra den i sales_data_2022.

  2. Uppdatera de sista två elementen i den första raden (som representerar en produkts kvartalsförsäljning) i sales_data_2022 till 390 och 370:

    • Använd ett positivt index för att specificera raden;
    • Använd en skiva med endast ett negativt start-värde för att indexera de sista två elementen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
Vi beklagar att något gick fel. Vad hände?

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

book
Kopiera Arrayer

Ofta behöver du skapa en kopia av en array för att göra ändringar utan att påverka den ursprungliga arrayen.

Enkel Tilldelning

Först kommer vi att diskutera varför vi inte bara kan skapa en annan variabel med array_2 = array_1, där array_1 är vår ursprungliga array.

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

Vi ändrade värdet på det första elementet i array_2 till 10, men denna tilldelning ändrade också värdet på det första elementet i array_1 till 10.

Notera

Med array_2 = array_1, skapar du inte en ny array; istället skapar du en referens till samma array i minnet. Som ett resultat kommer alla ändringar som görs i array_2 också att påverka array_1.

För att lösa detta problem kan vi skriva array_2 = np.array([1, 2, 3]), men det skulle innebära att skriva samma kod två gånger. Kom ihåg den viktiga principen i kodning: Upprepa dig inte.

ndarray.copy() Metod

Lyckligtvis har NumPy en ndarray.copy() metod som en lösning på detta 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

Nu har vi skapat en ny array för array_2 med samma element som array_1.

För 2D-arrayer är kopieringsproceduren exakt densamma.

numpy.copy() Funktion

Istället för .copy() metoden, kan vi också använda copy() funktionen, som tar arrayen som sin parameter: array_2 = np.copy(array_1).

Både funktionen och metoden fungerar likadant; dock finns det en nyans. De har båda parametern order, som specificerar arrayens minneslayout, men deras standardvärden är olika.

Bilden nedan visar strukturen av sales_data_2021 arrayen som används i uppgiften:

Uppgift

Swipe to start coding

Du analyserar kvartalsförsäljningsdata för ett företag för år 2021. Data lagras i en NumPy-array som heter sales_data_2021, där varje rad representerar en specifik produkt, och varje kolumn representerar kvartalsförsäljningen för den produkten.

  1. Skapa en kopia av sales_data_2021 med hjälp av den lämpliga metoden för en NumPy-array och lagra den i sales_data_2022.

  2. Uppdatera de sista två elementen i den första raden (som representerar en produkts kvartalsförsäljning) i sales_data_2022 till 390 och 370:

    • Använd ett positivt index för att specificera raden;
    • Använd en skiva med endast ett negativt start-värde för att indexera de sista två elementen.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt