Taulukoiden Kopioiminen
Usein sinun täytyy luoda taulukosta kopio tehdäksesi muutoksia vaikuttamatta alkuperäiseen taulukkoon.
Yksinkertainen Määritys
Ensin keskustelemme siitä, miksi emme voi yksinkertaisesti luoda toista muuttujaa käyttämällä array_2 = array_1
, missä array_1
on alkuperäinen taulukkomme.
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)
Muutimme array_2
:n ensimmäisen alkion arvoksi 10
, mutta tämä muutos muutti myös array_1
:n ensimmäisen alkion arvoksi 10
.
Huomautus
Kun käytät
array_2 = array_1
, et luo uutta taulukkoa; sen sijaan luot viittauksen samaan taulukkoon muistissa. Tämän seurauksena kaikki muutokset, jotka tehdäänarray_2
:lle, vaikuttavat myösarray_1
:een.
Tämän ongelman ratkaisemiseksi voisimme kirjoittaa array_2 = np.array([1, 2, 3])
, mutta se tarkoittaisi saman koodin kirjoittamista kahdesti. Muista koodauksen keskeinen periaate: Älä toista itseäsi.
ndarray.copy() -menetelmä
Onneksi NumPy:lla on ndarray.copy()
-menetelmä ratkaisuna tähän ongelmaan.
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}')
Nyt olemme luoneet uuden taulukon array_2
samoilla elementeillä kuin array_1
.
Kaksidimensionaalisten (2D) taulukoiden kohdalla kopiointimenettely on täsmälleen sama.
numpy.copy() Funktio
Sen sijaan, että käyttäisimme .copy()
metodia, voimme myös käyttää copy()
funktiota, joka ottaa taulukon parametrinaan: array_2 = np.copy(array_1)
.
Sekä funktio että metodi toimivat samalla tavalla; kuitenkin, niissä on yksi vivahde. Molemmilla on order
-parametri, joka määrittää taulukon muistin asettelun, mutta niiden oletusarvot ovat erilaiset.
Alla oleva kuva näyttää tehtävässä käytetyn sales_data_2021
taulukon rakenteen:
Swipe to start coding
Analysoit yrityksen neljännesvuosittaista myyntidataa vuodelta 2021. Data on tallennettu NumPy-taulukkoon nimeltä sales_data_2021
, jossa jokainen rivi edustaa tiettyä tuotetta, ja jokainen sarake edustaa tuotteen neljännesvuosittaista myyntiä.
-
Luo kopio
sales_data_2021
:stä käyttämällä sopivaa NumPy-taulukon menetelmää ja tallenna sesales_data_2022
:een. -
Päivitä
sales_data_2022
:n ensimmäisen rivin (joka edustaa tuotteen neljännesvuosittaista myyntiä) kaksi viimeistä elementtiä arvoihin 390 ja 370:- Käytä positiivista indeksiä rivin määrittämiseen;
- Käytä viipaletta, jossa on vain negatiivinen
start
-arvo kahden viimeisen elementin indeksointiin.
Ratkaisu
Kiitos palautteestasi!