Viimastel aastatel on Pythoni kasutamine erinevates valdkondades hüppeliselt laienenud, eriti andmetega manipuleerimise ja teadusliku andmetöötluse valdkonnas. Üks nende ülesannete jaoks kõige sagedamini kasutatavaid teeke on NumPy. NumPy on võimas ja mitmekülgne raamatukogu, mida kasutatakse laialdaselt suurte, mitmemõõtmeliste massiivide ja maatriksitega töötamiseks ning muude matemaatiliste funktsioonide hulgas. Üks levinud toiming nende andmestruktuuridega töötamisel on vajadus massiivi viimane dimensioon ahendada või vähendada. Selles artiklis uurime seda teemat üksikasjalikult, alustades probleemi sissejuhatusest, millele järgneb lahendus ja koodi samm-sammult selgitus. Lõpetuseks käsitleme mõningaid seotud teemasid ja raamatukogusid, mis võiksid huvi pakkuda.
Massiivi viimase dimensiooni kokkutõmbamise vajadus võib tekkida erinevates olukordades, näiteks kui olete arvutanud tulemuse mitmemõõtmelisest massiivist ja soovite saada andmete lihtsamat ja lihtsustatud esitust. See toiming hõlmab sisuliselt algse massiivi teisendamist vähemmõõtmeliseks massiiviks, kõrvaldades või kokku tõmmates viimase dimensiooni piki selle telge.
Lahendus: np.squeeze kasutamine
Üks viis selle probleemi lahendamiseks on kasutada funktsiooni numpy.squeeze . See funktsioon eemaldab sisendmassiivi kujust ühemõõtmelised kirjed.
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)
Samm-sammuline selgitus
Jagame nüüd koodi lahti ja mõistame, kuidas see töötab.
1. Esiteks impordime NumPy teegi np-na:
import numpy as np
2. Järgmiseks loome juhusliku 3-mõõtmelise massiivi kujuga (2, 3, 1):
arr = np.random.rand(2, 3, 1)
print("Original array shape:", arr.shape)
3. Nüüd kasutame funktsiooni np.squeeze massiivi viimase mõõtme kokkutõmbamiseks, määrates parameetri telje väärtuseks -1:
collapsed_arr = np.squeeze(arr, axis=-1)
print("Collapsed array shape:", collapsed_arr.shape)
4. Selle tulemusena saame uue massiivi kujuga (2, 3), mis näitab, et viimane mõõde on edukalt ahendatud.
Alternatiivne lahendus: kujundage ümber
Teine viis viimase dimensiooni kokkuvarisemiseks on kasutada funktsiooni numpy.reshape koos soovitud tulemuse saavutamiseks vajalike parameetritega.
collapsed_arr_reshape = arr.reshape(2, 3)
print("Collapsed array shape using reshape:", collapsed_arr_reshape.shape)
Sel juhul oleme algse massiivi selgesõnaliselt ümber kujundanud, et selle kuju oleks (2, 3), ahendades tõhusalt viimase mõõtme.
Seotud raamatukogud ja funktsioonid
Lisaks NumPy-le on Pythoni ökosüsteemis mitu teist teeki, mis pakuvad tööriistu massiivide ja maatriksitega töötamiseks. Üks selline teek on SciPy , mis tugineb NumPy-le ja pakub lisafunktsionaalsust teadusarvutuste jaoks. Masinõppe valdkonnas töötab TensorFlow teek ka tensoritega (st mitmemõõtmeliste massiividega) ja pakub oma maatriksitega manipuleerimise funktsioonide komplekti. Lisaks saab Pandase teeki kasutada DataFrame'ide , kõrgema taseme andmestruktuuri, mida võib pidada massiive sisaldavateks tabeliteks, manipuleerimiseks . Lisaks võimaldab toiming numpy.newaxis teil massiivile lisada uue telje, mis võib olla kasulik, kui teil on vaja massiivi mõõtmeid laiendada, et need vastaksid toimingu jaoks vajalikule kujule.
Kokkuvõtteks võib öelda, et võime massiividega tõhusalt manipuleerida ja nendega töötada on programmeerimise ja andmeteaduse maailmas oluline oskus. NumPy on äärmiselt võimas raamatukogu, mis pakub laialdast funktsionaalsust ning selliste tehnikate mõistmine nagu viimase mõõtme kokkuvarisemine on kasulik erinevates olukordades, kui käsitleda suuri ja keerulisi andmekogumeid.