Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kopiering af Arrays | Almindeligt Anvendte NumPy-Funktioner
Numpy-Grundlæggende
Sektion 3. Kapitel 3
single

single

Kopiering af Arrays

Stryg for at vise menuen

Ofte er det nødvendigt at oprette en kopi af et array for at foretage ændringer uden at påvirke det oprindelige array.

Simpel tildeling

Først diskuteres, hvorfor du ikke blot kan oprette en anden variabel ved hjælp af array_2 = array_1, hvor array_1 er dit oprindelige 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)

Du ændrede værdien af det første element i array_2 til 10, men denne tildeling ændrede også værdien af det første element i array_1 til 10.

Note
Bemærk

Med array_2 = array_1 opretter du ikke et nyt array; i stedet opretter du en reference til det samme array i hukommelsen. Derfor vil alle ændringer foretaget på array_2 også påvirke array_1.

Visualisering af delt reference

For at løse dette problem kunne du skrive array_2 = np.array([1, 2, 3]), men det ville betyde, at du skulle skrive den samme kode to gange. Husk det centrale princip i programmering: Gentag ikke dig selv.

ndarray.copy() Metode

Heldigvis har NumPy en ndarray.copy() metode som løsning på dette 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}')

Nu har du oprettet et nyt array for array_2 med de samme elementer som array_1.

Visualisering af array-kopiering

For 2D arrays er kopieringsproceduren præcis den samme.

numpy.copy() Funktion

I stedet for .copy() metoden kan du også bruge copy() funktionen, som tager arrayet som sin parameter: array_2 = np.copy(array_1).

Både funktionen og metoden fungerer på samme måde; dog er der én nuance. Begge har parameteren order, som angiver hukommelseslayoutet for arrayet, men deres standardværdier er forskellige.

Billedet nedenfor viser strukturen af sales_data_2021 arrayet, der bruges i opgaven:

Salgsdata 2021
Opgave

Swipe to start coding

Du analyserer kvartalsvise salgsdata for en virksomhed for året 2021. Dataene er gemt i et NumPy-array kaldet sales_data_2021, hvor hver række repræsenterer et specifikt produkt, og hver kolonne repræsenterer de kvartalsvise salg for det pågældende produkt.

  1. Opret en kopi af sales_data_2021 ved hjælp af den relevante metode for et NumPy-array og gem den i sales_data_2022.
  2. Opdater de sidste to elementer i første række (der repræsenterer et produkts kvartalsvise salg) i sales_data_2022 til 390 og 370:
    • Brug et positivt indeks til at angive rækken;
    • Brug et slice med kun en negativ start-værdi til at indeksere de sidste to elementer.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt