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
Numpy-Grunder
Avsnitt 3. Kapitel 3
single

single

Kopiera Arrayer

Svep för att visa menyn

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 diskuteras varför du inte bara kan skapa en annan variabel med array_2 = array_1, där array_1 är din 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)

Du ä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.

Note
Observera

Med array_2 = array_1 skapar du inte en ny array; istället skapar du en referens till samma array i minnet. Därför kommer alla ändringar som görs i array_2 även att påverka array_1.

Visualisering av delad referens

För att lösa detta problem skulle du kunna skriva array_2 = np.array([1, 2, 3]), men det skulle innebära att samma kod skrivs två gånger. Kom ihåg den grundläggande principen inom programmering: Upprepa dig inte.

ndarray.copy()-metoden

Som tur är har NumPy en ndarray.copy()-metod som löser 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}')

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

Visualisering av arraykopiering

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

numpy.copy()-funktionen

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

Både funktionen och metoden fungerar likadant; dock finns det en nyans. Båda har parametern order, som anger minneslayouten för arrayen, men deras standardvärden skiljer sig åt.

Bilden nedan visar strukturen för arrayen sales_data_2021 som används i uppgiften:

Försäljningsdata 2021
Uppgift

Svep för att börja koda

Du analyserar kvartalsförsäljningsdata för ett företag för året 2021. Datan är lagrad i en NumPy-array med namnet 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 spara den i sales_data_2022.
  2. Uppdatera de två sista elementen i 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 slice med endast ett negativt start-värde för att indexera de två sista 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
single

single

Fråga AI

expand

Fråga AI

ChatGPT

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

some-alt