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.
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)
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.
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}')
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!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.7
Taulukoiden Kopioiminen
Pyyhkäise näyttääksesi valikon
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.
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)
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.
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}')
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!
Awesome!
Completion rate improved to 3.7single