NumPy yra pagrindinė mokslinio skaičiavimo Python biblioteka ir plačiai naudojama mašininio mokymosi programose. Štai keletas įprastų NumPy funkcijų, kurios dažnai naudojamos mašininiame mokyme:
1. np.array(): ši funkcija naudojama sukurti NumPy masyvus, kurie yra pagrindinės duomenų struktūros, naudojamos mašininiam mokymuisi.
2. np.zeros(), np.ones(), np.random.rand(), np.random.randn(): naudojamos šios funkcijos sukurti masyvus, užpildytus nuliais, vienetais arba atsitiktinėmis reikšmėmis, kurios dažnai naudojamos modelio parametrams inicijuoti arba sintetiniams duomenims generuoti.
3. np.linspace(), np.logspace(): šios funkcijos naudojamos tolygiai išdėstytų reikšmių masyvams kurti, kurie gali būti naudingi atliekant tokias užduotis kaip funkcijų inžinerija ar vizualizacija.
4. np.reshape(), np.transpose(), np.expand_dims(): šios funkcijos naudojamos masyvų formai ir matmenims valdyti, o tai dažnai būtina, kai darbas su mašininio mokymosi modeliais.
5. np.concatenate(), np.stack(), np.vstack(), np.hstack(): šios funkcijos naudojamos keliems masyvams sujungti išilgai skirtingų ašių, o tai gali būti naudinga atliekant tokias užduotis kaip funkcijų projektavimas ar duomenų papildymas.
6. np.sum(), np.mean(), np.std(), np.var(): šios funkcijos naudojamos pagrindinei statistikai apskaičiuoti masyvų savybes, kurios gali būti naudingos duomenų analizei ir funkcijų inžinerijai.
7. np.dot(), np.matmul(): šios funkcijos naudojamos atlikti matricos dauginimą, kuris yra pagrindinė daugelio mašininio mokymosi algoritmų operacija.
8. np.linalg.inv(), np.linalg.eig(), np.linalg.svd(): šios funkcijos naudojamos atlikti tiesinės algebros operacijas, pvz. matricos inversija, savųjų verčių skaidymas ir vienaskaitos vertės skaidymas, kurie yra svarbūs mašininiam mokymuisi atliekant tokias užduotis kaip matmenų mažinimas ir modelio optimizavimas.
9. np.argmax(), np.argsort(): šios funkcijos naudojamos ieškant didžiausių arba surūšiuotų reikšmių masyve indeksams, kurie gali būti naudingi atliekant tokias užduotis kaip klasifikavimas ar reitingavimas. .
10. np.where(): ši funkcija naudojama sąlyginei logikai taikyti masyvams, o tai gali būti naudinga atliekant tokias užduotis kaip funkcijų inžinerija arba išankstinis duomenų apdorojimas.
Tai tik keli pavyzdžiai iš daugelio NumPy funkcijų, kurios dažniausiai naudojamos mašininiam mokymuisi. Konkrečios naudojamos funkcijos priklausys nuo konkrečios problemos ir naudojamo mašininio mokymosi modelio reikalavimų.
Citatos:
[1] https://madewithml.com/courses/foundations/numpy/
[2] https://faculty.washington.edu/otoomet/machinelearning-py/numpy-and-pandas.html
[3] https://www.youtube.com/watch?v=gnKbAAVUzro
[4] https://www.naukri.com/code360/library/important-numpy-functions-for-ml
[5] https://becominghuman.ai/an-essential-guide-to-numpy-for-machine-learning-in-python-5615e1758301?gi=adb6aadca980
Kuo NumPy taškinis produktas skiriasi nuo matricos daugybos kitose bibliotekose
Pagrindiniai NumPy funkcijos „np.dot()“ ir matricos daugybos kitose bibliotekose skirtumai yra šie:
1. Matmenys:
- „np.dot()“ gali tvarkyti skirtingų matmenų masyvus, atlikdamas įvairias operacijas pagal įvesties formas.
– 1D masyvams „np.dot()“ apskaičiuoja vidinį sandaugą.
– 2D masyvams „np.dot()“ apskaičiuoja matricos dauginimą.
- Didesnių matmenų masyvuose „np.dot()“ atlieka sumos sandaugą per paskutinę pirmojo argumento ašį ir nuo antros iki paskutinės antrojo argumento ašies.
2. Efektyvumas:
- NumPy „np.dot()“ yra labai optimizuota ir naudoja efektyvias BLAS (pagrindinių tiesinės algebros subprogramų) bibliotekas, todėl ji yra labai greita.
– Kitose bibliotekose gali būti ne toks pat optimizavimo lygis, ypač didelėms matricoms arba didelio matmens masyvams.
3. Sintaksė:
- Python 3.5 ir naujesnėje versijoje operatorius „@“ gali būti naudojamas matricai dauginti, o tai yra intuityvesnis ir glaustesnis nei „np.dot()“ iškvietimas.
– Kitos bibliotekos gali turėti savo matricos daugybos sintaksę, kuri gali skirtis nuo „NumPy“ „np.dot()“.
4. Lankstumas:
- "np.dot()" yra lankstesnis apdorojant skirtingų matmenų masyvus, tuo tarpu matricos daugyba kitose bibliotekose gali turėti griežtesnius reikalavimus įvesties formoms.
5. Įvardijimo konvencija:
- Pavadinimas „np.dot()“ gali būti klaidinantis, nes jis atlieka ir taško sandaugą, ir matricos dauginimą, atsižvelgiant į įvesties formas.
– Kitose bibliotekose gali būti daugiau aprašomųjų funkcijų pavadinimų, pvz., „matrix_multiply()“ arba „matmul()“, kad būtų galima aiškiai atskirti taškų sandaugą ir matricos dauginimą.
Apibendrinant galima pasakyti, kad nors pagrindinės matematinės operacijos gali būti panašios, NumPy funkcija „np.dot()“ suteikia lankstesnį ir efektyvesnį taškų sandaugos ir matricos daugybos įgyvendinimą, palyginti su kitomis bibliotekomis, tačiau pavadinimų suteikimo taisyklės gali būti klaidinančios. Operatoriaus „@“ įdiegimas Python 3.5+ versijoje padeda padaryti matricos dauginimą intuityvesnį.
Citatos:
[1] https://stackoverflow.com/questions/34142485/difference-between-numpy-dot-and-python-3-5-matrix-multiplication
[2] https://www.w3resource.com/python-exercises/numpy/advanced-numpy-exercise-1.php
[3] https://mkang32.github.io/python/2020/08/30/numpy-matmul.html
[4] https://www.includehelp.com/python/difference-between-numpy-dot-and-inner-methods.aspx
[5] https://numpy.org/doc/stable/reference/generated/numpy.dot.html
Ar yra scenarijų, kai np.dot pirmenybė teikiama, o ne @ arba np.matmul
Taip, yra scenarijų, kai pirmenybė teikiama „np.dot“, o ne „@“ arba „np.matmul“. Štai keletas atvejų, kai „np.dot“ gali būti tinkamesnis:
1. Suderinamumas su senesnėmis Python versijomis: „np.dot“ yra visose „NumPy“ versijose, įskaitant senesnes. Jei reikia palaikyti senesnes Python versijas, `np.dot` yra saugesnis pasirinkimas.
2. Konkretūs naudojimo atvejai: „np.dot“ gali atlikti tam tikras operacijas, kurių „@“ ir „np.matmul“ neatlieka. Pavyzdžiui, jei jums reikia atlikti taškinį produktą išilgai konkrečios ašies, „np.dot“ gali tai padaryti lengviau.
3. Įskaitomumas ir aiškumas: kai kuriais atvejais naudojant „np.dot“ kodas gali būti skaitomesnis ir lengviau suprantamas. Pavyzdžiui, jei atliekate taškinį sandaugą sudėtingoje išraiškoje, naudojant „np.dot“ kodas gali būti glaustesnis ir lengviau sekamas.
4. Našumas: kai kuriais atvejais „np.dot“ gali būti greitesnis nei „@“ arba „np.matmul“, nes jis atlieka tam tikras operacijas. Tačiau tai paprastai nėra didelė problema, nebent dirbate su labai dideliais duomenų rinkiniais.
5. Senas kodas: jei dirbate su senu kodu, kuriame naudojamas „np.dot“, gali būti lengviau naudoti „np.dot“, kad išlaikytumėte suderinamumą ir išvengtumėte galimų problemų atnaujinant į naujesnes „NumPy“ versijas. .
Štai keli scenarijai, kai „np.dot“ gali būti teikiama pirmenybė „@“ arba „np.matmul“:
– Suderinamumas su senesnėmis Python versijomis: jei reikia palaikyti senesnes Python versijas, `np.dot` yra saugesnis pasirinkimas.
– Konkretūs naudojimo atvejai: jei reikia atlikti taškinį produktą išilgai konkrečios ašies, „np.dot“ gali tai padaryti lengviau.
– Įskaitomumas ir aiškumas: kai kuriais atvejais naudojant „np.dot“ kodas gali būti aiškesnis ir lengviau suprantamas.
- Našumas: kai kuriais atvejais „np.dot“ gali būti greitesnis nei „@“ arba „np.matmul“, nes jis atlieka tam tikras operacijas.
– Senas kodas: jei dirbate su senu kodu, kuriame naudojamas „np.dot“, gali būti lengviau naudoti „np.dot“, kad būtų išlaikytas suderinamumas ir išvengta galimų problemų atnaujinant į naujesnes „NumPy“ versijas.
Apibendrinant galima pasakyti, kad nors „@“ ir „np.matmul“ paprastai yra veiksmingesni ir skaitomesni, yra scenarijų, kai „np.dot“ gali būti tinkamesnis.
Citatos:[1] https://stackoverflow.com/questions/63628004/whether-to-use-numpys-dot-or-matmul-function
[2] https://stackoverflow.com/questions/34142485/difference-between-numpy-dot-and-python-3-5-matrix-multiplication
[3] https://madewithml.com/courses/foundations/numpy/
[4] https://mkang32.github.io/python/2020/08/30/numpy-matmul.html
[5] https://labex.io/tutorials/python-numpy-dot-function-86429