single
Taulukoiden litistäminen
Pyyhkäise näyttääksesi valikon
Taulukon litistäminen tarkoittaa moniulotteisen taulukon muuntamista yksiulotteiseksi taulukoksi, eli sen sisällön purkamista auki.
Tämä toimenpide on hyödyllinen, kun halutaan käsitellä taulukon alkioita yksi kerrallaan tai kun data halutaan muokata paremmin tiettyihin algoritmeihin sopivaksi.
NumPyssa taulukon litistämiseen on kolme vaihtoehtoa:
- Käyttämällä
ndarray.reshape(-1)-metodia tainumpy.reshape(array, -1)-funktiota; - Käyttämällä
ndarray.ravel()-metodia tainumpy.ravel(array)-funktiota; - Käyttämällä
ndarray.flatten()-metodia.
reshape(-1)
.reshape(-1)-metodi tai reshape(array, -1)-funktio palauttaa yhtenäisen litistetyn taulukon, jossa on sama määrä alkioita.
Kuten aiemmassa luvussa mainittiin, -1 laskee automaattisesti ulottuvuuden koon alkuperäisen taulukon koon perusteella. Koska annetaan vain yksi kokonaisluku shape-parametriksi, palautetaan yksiulotteinen taulukko, jossa on sama määrä alkioita.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
Metodi .reshape() tai vastaava funktio palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset uudelleenmuotoiltuun taulukkoon vaikuttavat myös alkuperäiseen taulukkoon.
flattened_array = np.reshape(array_2d, -1) voidaan käyttää metodikutsun sijaan.
ravel()
ndarray.ravel()-metodi tai numpy.ravel(array)-funktio toimii samalla tavalla kuin reshape(-1) ja palauttaa myös alkuperäisen taulukon näkymän:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d) voidaan käyttää metodikutsun sijaan.
ndarray.flatten()
Jos halutaan kopio alkuperäisestä taulukosta, ei näkymä, voidaan käyttää .flatten()-metodia:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Voit aina kopioida taulukon näkymän luodaksesi erillisen olion ja muokata tätä kopiota vaikuttamatta alkuperäiseen taulukkoon.
Pyyhkäise aloittaaksesi koodauksen
- Käytä
.flatten()-metodia oikeinexam_scores-taulukon litistämiseen ja tallenna tulos muuttujaanexam_scores_flattened. - Käytä
.reshape()-metodia oikeinexam_scores-taulukon litistämiseen ja tallenna tulos muuttujaanexam_scores_reshaped. - Käytä
.ravel()-metodiaexam_scores-taulukon litistämiseen ja tallenna tulos muuttujaanexam_scores_raveled. - Valitse kolmesta luodusta litistetystä taulukosta se, joka on kopio alkuperäisestä taulukosta (ei näkymä), ja aseta sen ensimmäiseksi alkioksi arvo
100(käytä positiivista indeksointia).
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme