Taulukoiden Litistäminen
Tasoitus tarkoittaa taulukon muuttamista moniulotteisesta taulukosta 1D-taulukoksi, käytännössä sen sisällön purkamista.
Tämä operaatio on hyödyllinen, kun sinun täytyy käsitellä taulukon elementtejä yksi kerrallaan tai kun haluat tehdä datasta sopivampaa tietyille algoritmeille.
NumPy:ssä on kolme mahdollista vaihtoehtoa tasoittamiseen:
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 jatkuvan tasoitetun taulukon, jossa on sama määrä elementtejä.
Kuten olemme jo maininneet edellisessä luvussa, -1
laskee automaattisesti ulottuvuuden koon alkuperäisen taulukon koon perusteella. Koska annamme vain yhden kokonaisluvun shape
:lle, palautetaan 1D-taulukko, jossa on sama määrä elementtejä.
import 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}')
.reshape()
-menetelmä tai vastaava funktio palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset, jotka tehdään uudelleenmuotoiltuun taulukkoon, vaikuttavat myös alkuperäiseen taulukkoon.
Käyttämällä flattened_array = np.reshape(array_2d, -1)
voidaan käyttää sen sijaan, että kutsutaan menetelmää.
ravel()
ndarray.ravel()
-menetelmä tai numpy.ravel(array)
-funktio toimii samalla tavalla kuin reshape(-1)
ja palauttaa myös alkuperäisen taulukon näkymän:
import 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ää metodin kutsumisen sijasta.
ndarray.flatten()
Jos haluat kopion alkuperäisestä taulukosta, et näkymää, voit käyttää .flatten()
-metodia:
import 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}')
Huomautus
Voit aina kopioida taulukon näkymän luodaksesi erillisen objektin ja muokata tätä kopiota vaikuttamatta alkuperäiseen taulukkoon.
Swipe to start coding
-
Käytä
.flatten()
metodia oikeinexam_scores
-taulukon litistämiseen ja tallenna tulosexam_scores_flattened
. -
Käytä
.reshape()
metodia oikeinexam_scores
-taulukon litistämiseen ja tallenna tulosexam_scores_reshaped
. -
Käytä
.ravel()
metodiaexam_scores
-taulukon litistämiseen ja tallenna tulosexam_scores_raveled
. -
Valitse kolmesta luodusta litistetystä taulukosta se, joka on alkuperäisen taulukon kopio, ei näkymä, ja aseta sen ensimmäiseksi elementiksi
100
(käytä positiivista indeksointia).
Ratkaisu
Kiitos palautteestasi!