single
Taulukoiden Kopiointi
Pyyhkäise näyttääksesi valikon
Usein on tarpeen luoda kopio taulukosta, jotta muutoksia voidaan tehdä vaikuttamatta alkuperäiseen taulukkoon.
Yksinkertainen sijoitus
Ensin käsitellään, 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.
Kun käytät array_2 = array_1, et luo uutta taulukkoa, vaan luot viittauksen samaan taulukkoon muistissa. Tämän seurauksena kaikki muutokset, jotka tehdään array_2:lle, vaikuttavat myös array_1:een.
Tämän ongelman ratkaisemiseksi voisimme kirjoittaa array_2 = np.array([1, 2, 3]), mutta silloin joutuisimme kirjoittamaan saman koodin kahdesti. Muista ohjelmoinnin keskeinen periaate: Älä toista itseäsi.
ndarray.copy()-metodi
Onneksi NumPy tarjoaa ndarray.copy()-metodin ratkaisuksi 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, jossa on samat alkiot kuin array_1:ssa.
2D-taulukoiden kohdalla kopiointimenettely on täsmälleen sama.
numpy.copy()-funktio
.copy()-metodin sijaan voidaan käyttää myös copy()-funktiota, joka ottaa taulukon parametrinaan: array_2 = np.copy(array_1).
Sekä funktio että metodi toimivat samalla tavalla; kuitenkin niissä on yksi vivahde-ero. Molemmissa on order-parametri, joka määrittää taulukon muistirakenteen, mutta niiden oletusarvot eroavat toisistaan.
Alla olevassa kuvassa näkyy tehtävässä käytetyn sales_data_2021-taulukon rakenne:
Pyyhkäise aloittaaksesi koodauksen
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 kyseisen tuotteen neljännesvuosittaista myyntiä.
- Luo kopio taulukosta
sales_data_2021käyttämällä NumPy-taulukon asianmukaista menetelmää ja tallenna se muuttujaansales_data_2022. - Päivitä
sales_data_2022-taulukon ensimmäisen rivin (yhden tuotteen neljännesvuosimyynti) kaksi viimeistä alkiota arvoihin390ja370:- Käytä positiivista indeksiä rivin määrittämiseen;
- Käytä viipaletta, jossa on vain negatiivinen
start-arvo kahden viimeisen alkion indeksointiin.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme