NumPy on Pythoni teadusliku andmetöötluse põhiteek ja seda kasutatakse laialdaselt masinõpperakendustes. Siin on mõned levinumad NumPy funktsioonid, mida masinõppes sageli kasutatakse.
1. np.array(): seda funktsiooni kasutatakse NumPy massiivide loomiseks, mis on masinõppes kasutatavad põhilised andmestruktuurid.
2. np.zeros(), np.ones(), np.random.rand(), np.random.randn(): neid funktsioone kasutatakse nullide, ühtede või juhuslike väärtustega täidetud massiivide loomiseks, mida sageli kasutatakse mudeli parameetrite lähtestamiseks või sünteetiliste andmete genereerimiseks.
3. np.linspace(), np.logspace(): neid funktsioone kasutatakse ühtlase vahega väärtuste massiivide loomiseks, mis võivad olla kasulikud näiteks funktsioonide projekteerimisel või visualiseerimisel.
4. np.reshape(), np.transpose(), np.expand_dims(): neid funktsioone kasutatakse massiivide kuju ja mõõtmete muutmiseks, mis on sageli vajalik, kui masinõppe mudelitega töötamine.
5. np.concatenate(), np.stack(), np.vstack(), np.hstack(): neid funktsioone kasutatakse mitme massiivi ühendamiseks mööda erinevaid telge, mis võib olla kasulik selliste ülesannete puhul nagu funktsioonide projekteerimine või andmete täiendamine.
6. np.sum(), np.mean(), np.std(), np.var(): neid funktsioone kasutatakse põhistatistika arvutamiseks. massiivide omadused, mis võivad olla kasulikud andmete analüüsimisel ja funktsioonide kavandamisel.
7. np.dot(), np.matmul(): neid funktsioone kasutatakse maatriksi korrutamiseks, mis on paljude masinõppealgoritmide põhitoiming.
8. np.linalg.inv(), np.linalg.eig(), np.linalg.svd(): neid funktsioone kasutatakse lineaarsete algebra toimingute tegemiseks, näiteks maatriksi inversioon, omaväärtuste dekomponeerimine ja ainsuse väärtuse dekomponeerimine, mis on masinõppes olulised selliste ülesannete jaoks nagu mõõtmete vähendamine ja mudeli optimeerimine.
9. np.argmax(), np.argsort(): neid funktsioone kasutatakse massiivi maksimaalsete või sorteeritud väärtuste indeksite leidmiseks, mis võivad olla kasulikud selliste ülesannete puhul nagu klassifitseerimine või järjestamine .
10. np.where(): seda funktsiooni kasutatakse tingimusloogika rakendamiseks massiividele, mis võib olla kasulik selliste ülesannete puhul nagu funktsioonide projekteerimine või andmete eeltöötlus.
Need on vaid mõned näited paljudest NumPy funktsioonidest, mida masinõppes tavaliselt kasutatakse. Kasutatavad konkreetsed funktsioonid sõltuvad konkreetsest probleemist ja kasutatava masinõppemudeli nõuetest.
Tsitaadid:
[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
kuidas NumPy punktkorrutis erineb maatrikskorrutisest teistes teekides
Peamised erinevused NumPy funktsiooni np.dot() ja maatrikskorrutamise vahel teistes teekides on järgmised:
1. Mõõtmelisus:
- `np.dot()` saab käsitleda erineva mõõtmega massiive, sooritades sisendkujude põhjal erinevaid toiminguid.
- 1D-massiivide puhul arvutab `np.dot()' sisemise korrutise.
- 2D-massiivide puhul arvutab `np.dot() maatriksi korrutuse.
- Suuremate mõõtmetega massiivide korral teostab `np.dot()' esimese argumendi viimase telje ja teise argumendi teise kuni viimase telje korrutise.
2. Tõhusus:
- NumPy `np.dot()` on väga optimeeritud ja kasutab katte all tõhusaid BLAS (Basic Linear Algebra Subprograms) teeke, muutes selle väga kiireks.
- Muudel teekidel ei pruugi olla sama optimeerimise taset, eriti suurte maatriksite või suuremõõtmeliste massiivide puhul.
3. Süntaks:
- Python 3.5 ja uuemates versioonides saab maatriksikorrutamiseks kasutada operaatorit @, mis on intuitiivsem ja täpsem kui np.dot() kutsumine.
- Teistel teekidel võib maatriksi korrutamiseks olla oma süntaks, mis võib erineda NumPy `np.dot()-st.
4. Paindlikkus:
- "np.dot()" on paindlikum erinevate mõõtmetega massiivide käsitlemisel, samas kui maatriksikorrutamisel teistes teekides võivad sisendkujudele olla rangemad nõuded.
5. Nimetamise konventsioon:
- Nimi "np.dot()" võib olla eksitav, kuna see korrutab nii punktide korrutise kui ka maatriksi korrutamise sõltuvalt sisendkujudest.
- Teistel teekidel võivad olla kirjeldavamad funktsioonide nimed, nt „matrix_multiply()” või „matmul()”, et selgelt eristada punktkorrutist ja maatrikskorrutist.
Kokkuvõtteks võib öelda, et kuigi aluseks olevad matemaatilised toimingud võivad olla sarnased, pakub NumPy funktsioon np.dot() punktkorrutise ja maatriksi korrutamise paindlikumat ja tõhusamat rakendamist võrreldes teiste teekidega, kuid nimetamistava võib segadust tekitada. Operaatori @ kasutuselevõtt Python 3.5+ aitab muuta maatriksi korrutamise intuitiivsemaks.
Tsitaadid:
[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
Kas on stsenaariume, kus np.dot eelistatakse @ või np.matmul asemel
Jah, on stsenaariume, kus „np.dot” eelistatakse „@” või „np.matmul” asemel. Siin on mõned juhtumid, kus `np.dot` võib sobivam olla.
1. Ühilduvus Pythoni vanemate versioonidega: `np.dot` on saadaval kõigis NumPy versioonides, sealhulgas vanemates. Kui teil on vaja toetada vanemaid Pythoni versioone, on `np.dot` turvalisem valik.
2. Konkreetsed kasutusjuhud: „np.dot” saab hakkama teatud toimingutega, mida „@” ja „np.matmul” ei tee. Näiteks kui teil on vaja sooritada punktkorrutis piki kindlat telge, saab np.dot sellega hõlpsamini hakkama.
3. Loetavus ja selgus: mõnel juhul võib koodi „np.dot” kasutamine muuta koodi loetavamaks ja arusaadavamaks. Näiteks kui esitate punktkorrutise keerulises avaldises, võib atribuudi „np.dot” kasutamine muuta koodi kokkuvõtlikumaks ja hõlpsamini jälgitavaks.
4. Toimivus: mõnel juhul võib „np.dot” teatud toimingute käitlemise tõttu olla kiirem kui „@” või „np.matmul”. See ei ole aga üldiselt oluline probleem, välja arvatud juhul, kui töötate väga suurte andmekogumitega.
5. Pärandkood: kui töötate pärandkoodiga, mis kasutab koodi „np.dot”, võib ühilduvuse säilitamiseks ja NumPy uuematele versioonidele üleviimisel tekkida võivate probleemide vältimiseks olla lihtsam np.dot kasutada. .
Siin on mõned stsenaariumid, kus „np.dot” võidakse eelistada „@” või „np.matmul” asemel:
- Ühilduvus vanemate Pythoni versioonidega: kui teil on vaja toetada vanemaid Pythoni versioone, on np.dot turvalisem valik.
- Konkreetsed kasutusjuhud: kui teil on vaja sooritada punktkorrutis piki kindlat telge, saab np.dot sellega hõlpsamini hakkama.
- Loetavus ja selgus: mõnel juhul võib koodi „np.dot” kasutamine muuta koodi loetavamaks ja arusaadavamaks.
- Toimivus: mõnel juhul võib „np.dot” teatud toimingute käitlemise tõttu olla kiirem kui „@” või „np.matmul”.
- Pärandkood: kui töötate pärandkoodiga, mis kasutab koodi „np.dot”, võib ühilduvuse säilitamiseks ja NumPy uuematele versioonidele üleviimisel tekkida võivate probleemide vältimiseks olla lihtsam np.dot kasutada.
Kokkuvõttes võib öelda, et kuigi „@” ja „np.matmul” on üldiselt tõhusamad ja loetavamad, on stsenaariume, kus „np.dot” võib olla sobivam.
Tsitaadid:[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