Posljednjih godina upotreba Pythona u raznim područjima eksponencijalno se proširila, posebice u području manipulacije podacima i znanstvenog računalstva. Jedna od najčešće korištenih biblioteka za ove zadatke je NumPy. NumPy je snažna i svestrana biblioteka koja se intenzivno koristi za rad s velikim, višedimenzionalnim nizovima i matricama, između ostalih matematičkih funkcija. Jedna uobičajena operacija u radu s tim strukturama podataka je potreba za sažimanjem ili smanjivanjem posljednje dimenzije niza. U ovom ćemo članku detaljno istražiti ovu temu, počevši s uvodom u problem, nakon čega slijedi rješenje i objašnjenje koda korak po korak. Na kraju ćemo istražiti neke srodne teme i biblioteke koje bi mogle biti od interesa.
Potreba da urušiti posljednju dimenziju niza može se pojaviti u različitim situacijama, primjerice kada ste izračunali rezultat iz višedimenzionalnog niza i želite dobiti jednostavniji, smanjeni prikaz podataka. Ova operacija u biti uključuje transformaciju izvornog niza u jedan s manje dimenzija eliminacijom ili sažimanjem zadnje dimenzije duž njegove osi.
Rješenje: pomoću np.squeeze
Jedan od načina za rješavanje ovog problema je korištenje numpy.stisnuti funkcija. Ova funkcija uklanja jednodimenzionalne unose iz oblika ulaznog polja.
import numpy as np arr = np.random.rand(2, 3, 1) print("Original array shape:", arr.shape) collapsed_arr = np.squeeze(arr, axis=-1) print("Collapsed array shape:", collapsed_arr.shape)
Objašnjenje korak po korak
Razložimo sada kod i shvatimo kako funkcionira.
1. Prvo uvozimo biblioteku NumPy kao np:
import numpy as np
2. Zatim stvaramo slučajni trodimenzionalni niz oblika (3, 2, 3):
arr = np.random.rand(2, 3, 1) print("Original array shape:", arr.shape)
3. Sada koristimo np.stisnuti funkcija za sažimanje zadnje dimenzije niza određivanjem os parametar kao -1:
collapsed_arr = np.squeeze(arr, axis=-1) print("Collapsed array shape:", collapsed_arr.shape)
4. Kao rezultat, dobivamo novi niz oblika (2, 3), što pokazuje da je zadnja dimenzija uspješno sažeta.
Alternativno rješenje: Preoblikujte
Drugi način sažimanja posljednje dimenzije je korištenje numpy.preoblikovati funkcionirati s odgovarajućim parametrima za postizanje željenog rezultata.
collapsed_arr_reshape = arr.reshape(2, 3) print("Collapsed array shape using reshape:", collapsed_arr_reshape.shape)
U ovom slučaju, eksplicitno smo preoblikovali izvorni niz tako da ima oblik (2, 3), učinkovito skupljajući posljednju dimenziju.
Povezane biblioteke i funkcije
Osim NumPy-a, postoji nekoliko drugih biblioteka u Python ekosustavu koje nude alate za rad s nizovima i matricama. Jedna takva knjižnica je SciPy, koji se nadograđuje na NumPy i pruža dodatnu funkcionalnost za znanstveno računalstvo. U carstvu strojnog učenja, knjižnica TensorFlow također radi s tenzorima (tj. višedimenzionalnim nizovima) i pruža vlastiti skup funkcija za manipulaciju matricom. Osim toga, pande biblioteka se može koristiti za manipulaciju Okviri podataka, struktura podataka više razine koja se može smatrati tablicama koje sadrže nizove. Nadalje, numpy.newaxis omogućuje vam dodavanje nove osi nizu, što može biti korisno kada trebate proširiti dimenzije niza kako bi odgovarao obliku potrebnom za operaciju.
U zaključku, sposobnost učinkovite manipulacije i rada s nizovima bitna je vještina u svijetu programiranja i znanosti o podacima. NumPy je iznimno moćna biblioteka koja pruža široku funkcionalnost, a razumijevanje tehnika kao što je sažimanje posljednje dimenzije bit će korisno u raznim situacijama kada se radi s velikim i složenim skupovima podataka.