Mida Pythoniga täpselt teha saab? Siin on Pythoni kolm peamist rakendust.

Kui mõtlete õppida Pythoni - või kui hakkasite seda hiljuti õppima - võite endalt küsida:

"Milleks saan Pythoni täpselt kasutada?"

Noh, see on keeruline küsimus, millele vastata, sest Pythoni jaoks on nii palju rakendusi.

Kuid aja jooksul olen täheldanud, et Pythoni jaoks on 3 peamist populaarset rakendust:

  • Veebiarendus
  • Andmeteadus - sealhulgas masinõpe, andmete analüüs ja andmete visualiseerimine
  • Skriptimine

Räägime neist kõigist omakorda.

Veebiarendus

Veebiraamistikud, mis põhinevad Pythonil, nagu Django ja Flask, on hiljuti veebiarenduse jaoks väga populaarseks muutunud.

Need veebiraamistikud aitavad teil luua Pythonis serveripoolse koodi (taustaprogrammi). See on kood, mis töötab teie serveris, erinevalt kasutajate seadmetest ja brauseritest (esiotsa kood). Kui te pole kursis taustaprogrammi ja esiotsa koodi erinevusega, vaadake palun minu allpool olevat joonealust märkust.

Aga oota, miks mul on vaja veebiraamistikku?

Seda seetõttu, et veebiraamistik muudab ühise taustaprogrammi loogika loomise lihtsamaks. See hõlmab erinevate URL-ide kaardistamist Pythoni koodi tükkidena, andmebaasidega tegelemist ja HTML-failide genereerimist, mida kasutajad näevad oma brauserites.

Millist Pythoni veebiraamistikku peaksin kasutama?

Django ja Flask on kaks kõige populaarsemat Pythoni veebiraamistikku. Soovitaksin neist ühte kasutada, kui alles alustate.

Mis vahe on Djangol ja Pudelil?

Gareth Dwyeri selle teema kohta on suurepärane artikkel, nii et lubage mul seda siin tsiteerida:

te>

Peamised kontrastid:

  • Kolb tagab lihtsuse, paindlikkuse ja peeneteralise kontrolli. See on arvamuseta (see võimaldab teil otsustada, kuidas soovite asju rakendada).
  • Django pakub kõikehõlmavat kogemust: saate administraatori paneeli, andmebaasiliidesed, ORM-i [objektide-seoste kaardistamine] ning oma rakenduste ja projektide kataloogistruktuuri kastist välja.

Tõenäoliselt peaksite valima:

  • Kolb, kui olete keskendunud kogemustele ja õppimisvõimalustele või soovite rohkem kontrollida, milliseid komponente kasutada (näiteks milliseid andmebaase soovite kasutada ja kuidas soovite nendega suhelda).
  • Django, kui olete keskendunud lõpptootele. Eriti kui töötate sirgjoonelise rakenduse, nagu uudiste sait, e-pood või ajaveeb, kallal ja soovite, et seal oleks alati üks, ilmne viis toiminguteks.

te>

Teisisõnu, kui olete algaja, on kolb tõenäoliselt parem valik, kuna sellel on vähem komponente, millega tegeleda. Samuti on kolb parem valik, kui soovite rohkem kohandusi.

Teiselt poolt, kui soovite ehitada midagi otse edasi, laseb Django teil tõenäoliselt kiiremini kohale jõuda.

Kui soovite Djangot õppida, soovitan raamatut Django algajatele. Selle leiate siit.

Siit leiate ka selle raamatu tasuta näidispeatükid.

Olgu, läheme järgmise teema juurde!

Andmeteadus - sealhulgas masinõpe, andmete analüüs ja andmete visualiseerimine

Esiteks vaatame, mida Masinõppimise on .

Ma arvan, et parim viis masinõppe selgitamiseks oleks tuua teile lihtne näide.

Oletame, et soovite välja töötada programmi, mis tuvastab automaatselt pildil oleva.

Seega, arvestades seda pilti allpool (pilt 1), soovite, et teie programm tunneks ära, et see on koer.

Arvestades seda teist allpool (pilt 2), soovite, et teie programm tunneks, et see on tabel.

Võib öelda, et noh, ma saan selleks lihtsalt koodi kirjutada. Näiteks võib-olla, kui pildil on palju helepruune pikslit, siis võime öelda, et see on koer.

Või äkki saate välja mõelda, kuidas pildil servi tuvastada. Siis võite öelda, et kui sirgeid servi on palju, siis on see laud.

Selline lähenemine muutub aga üsna kiiresti keeruliseks. Mis siis, kui pildil on valge koer, millel pole pruuni karva? Mis siis, kui pildil on näidatud ainult laua ümmargused osad?

Siin tuleb sisse masinõpe.

Masinõpe rakendab tavaliselt algoritmi, mis tuvastab antud sisendis mustri automaatselt.

Masinõppe algoritmile saate anda näiteks 1000 koera ja 1000 tabeli pilti. Seejärel saab teada koera ja laua erinevusest. Kui annate talle uue pildi kas koerast või lauast, saab ta ära tunda, mis see on.

Ma arvan, et see on mõnevõrra sarnane sellega, kuidas laps uusi asju õpib. Kuidas saab laps teada, et üks asi näeb välja nagu koer ja teine ​​laud? Ilmselt hunnikust näidetest.

Tõenäoliselt ei ütle te beebile sõnaselgelt: "Kui miski on karvane ja helepruunide juustega, siis on see tõenäoliselt koer."

Tõenäoliselt ütleksite lihtsalt: "See on koer. See on ka koer. Ja see on laud. See on ka laud. "

Masinõppe algoritmid töötavad peaaegu samamoodi.

Sama ideed saate rakendada järgmisele:

  • soovitussüsteemid (mõelge YouTube'ile, Amazonile ja Netflixile)
  • näotuvastus
  • hääletuvastus

muude rakenduste hulgas.

Populaarsed masinõppe algoritmid, millest olete kuulnud, võivad olla järgmised:

  • Närvivõrgud
  • Sügav õppimine
  • Toetage vektormasinaid
  • Juhuslik mets

Varem selgitatud pildisildistamise probleemi lahendamiseks võite kasutada mis tahes ülaltoodud algoritmi.

Python masinõppeks

Pythoni jaoks on populaarsed masinõppe teegid ja raamistikud.

Kaks kõige populaarsemat neist on scikit-learn ja TensorFlow .

  • scikit-learn sisaldab mõningaid populaarsemaid sisseehitatud masinõppe algoritme. Mainisin mõnda neist eespool.
  • TensorFlow on pigem madala taseme teek, mis võimaldab teil ehitada kohandatud masinõppe algoritme.

Kui olete alles alustamas masinõppeprojektiga, soovitaksin kõigepealt alustada scikit-õppida. Kui hakkate tegelema tõhususe probleemidega, hakkaksin uurima TensorFlow'i.

Kuidas peaksin õppima masinõpet?

Masinõppe põhialuste õppimiseks soovitaksin kas Stanfordi või Caltechi masinõppe kursust.

Pange tähele, et nende kursuste materjalide mõistmiseks vajate algteadmisi arvutusest ja lineaarsest algebrast.

Siis harjutaksin seda, mida olete õppinud ühelt selliselt kursuselt Kaggle'iga. See on veebisait, kus inimesed võistlevad antud probleemile parima masinõppe algoritmi loomisel. Neil on toredad õpetused ka algajatele.

Aga andmete analüüs ja andmete visualiseerimine?

Et aidata teil mõista, kuidas need välja võivad näha, lubage mul tuua teile siin lihtne näide.

Oletame, et töötate ettevõttes, mis müüb mõnda toodet veebis.

Seejärel võite andmete analüütikuna joonistada sellise tulpdiagrammi.

Selle graafiku põhjal võime öelda, et mehed ostsid seda toodet pühapäeval üle 400 ühiku ja naised umbes 350 ühikut.

Andmeanalüütikuna võiksite selle erinevuse jaoks välja pakkuda mõned võimalikud selgitused.

Üks ilmne võimalik seletus on see, et see toode on meeste seas rohkem populaarne kui naiste seas. Teine võimalik seletus võib olla see, et valimi suurus on liiga väike ja selle erinevuse põhjustas lihtsalt juhus. Ja veel üks võimalik selgitus võib olla see, et mehed kipuvad seda toodet rohkem ostma ainult pühapäeval mingil põhjusel.

Selleks, et mõista, milline neist selgitustest on õige, võiksite joonistada teise sellise graafiku.

Selle asemel, et näidata ainult pühapäeva andmeid, vaatame kogu nädala andmeid. Nagu näete, näeme selle graafiku põhjal, et see erinevus on erinevatel päevadel üsna püsiv.

Selle väikese analüüsi põhjal võite järeldada, et selle veenmise kõige veenvam seletus on see, et see toode on meestel lihtsalt rohkem populaarne kui naistel.

Teiselt poolt, mis siis, kui näete selle asemel sellist graafikut?

Mis seletab pühapäeva erinevust?

Võib öelda, et ehk kipuvad mehed seda toodet rohkem ostma ainult pühapäeval mingil põhjusel. Või võib-olla oli see lihtsalt juhus, et mehed ostsid seda pühapäeval rohkem.

Nii et see on lihtsustatud näide sellest, kuidas andmete analüüs reaalses maailmas välja võib näha.

Andmeanalüüsi töö, mille tegin siis, kui töötasin Google'is ja Microsoftis, oli selle näitega väga sarnane - ainult keerukam. Selliseks analüüsiks kasutasin tegelikult Google'is Pythoni, Microsoftis aga JavaScripti.

Andmete hankimiseks meie andmebaasidest kasutasin mõlema ettevõtte SQL-i. Seejärel kasutaksin nende andmete visualiseerimiseks ja analüüsimiseks kas Pythoni ja Matplotlibi (Google'is) või JavaScripti ja D3.js (Microsoftis).

Andmete analüüs / visualiseerimine Pythoniga

Üks populaarsemaid raamatuid andmete visualiseerimiseks on Matplotlib.

Alustuseks on hea raamatukogu, sest:

  • Alustamist on lihtne
  • Sellel põhinevad veel mõned raamatukogud, näiteks seaborn. Nii et Matplotlibi õppimine aitab teil neid teisi raamatukogusid hiljem õppida.

Kuidas peaksin Pythoni abil andmete analüüsi / visualiseerimist õppima?

Kõigepealt peaksite õppima andmete analüüsi ja visualiseerimise põhialuseid. Kui otsisin selle jaoks veebist häid ressursse, ei leidnud ma ühtegi. Lõpuks tegin sellel teemal YouTube'i video:

Lõpetasin ka selle teema täieliku kursuse Pluralsightis, mille saate tasuta osaleda, registreerudes nende 10-päevasele tasuta prooviversioonile.

Ma soovitaksin mõlemat.

Pärast andmete analüüsi ja visualiseerimise aluste õppimist on abiks ka selliste veebisaitide nagu Coursera ja Khani akadeemia statistika õppimine.

Skriptimine

Mis on skriptimine?

Skriptimine viitab tavaliselt väikeste programmide kirjutamisele, mis on mõeldud lihtsate ülesannete automatiseerimiseks.

Nii et lubage mul tuua näide minu isiklikust kogemusest siin.

Varem töötasin Jaapanis väikeses idufirmas, kus meil oli e-posti tugisüsteem. See oli süsteem, mille abil saime vastata klientide meile e-posti teel saadetud küsimustele.

Seal töötades oli mul ülesandeks loendada teatud märksõnu sisaldavate meilide arv, et saaksime saadud kirju analüüsida.

Me oleksime võinud seda teha käsitsi, kuid selle asemel kirjutasin selle ülesande automatiseerimiseks lihtsa programmi / lihtsa skripti.

Tegelikult kasutasime tolleks ajaks selleks Rubyt, kuid Python on ka hea selline keel. Python sobib seda tüüpi ülesannete jaoks peamiselt seetõttu, et sellel on suhteliselt lihtne süntaks ja seda on lihtne kirjutada. Samuti on sellega kiire midagi väikest kirjutada ja katsetada.

Aga manustatud rakendused?

Ma ei ole manustatud rakenduste ekspert, kuid tean, et Python töötab koos Rasberry Pi-ga. Tundub, et see on populaarne rakendus riistvara harrastajate seas.

Aga mängimine?

Mängude arendamiseks võite kasutada PyGame'i teeki, kuid see pole seal kõige populaarsem mängumootor. Saate seda kasutada hobiprojekti ehitamiseks, kuid ma isiklikult ei valiks seda, kui olete mängu arendamise tõsine.

Pigem soovitaksin alustada Unityga C # -ga, mis on üks populaarsemaid mängumootoreid. See võimaldab teil ehitada mängu paljudele platvormidele, sealhulgas Mac, Windows, iOS ja Android.

Aga töölauarakendused?

Selle võiksite Pythoniga teha ka Tkinteri abil, kuid see ei tundu ka kõige populaarsem valik.

Selle asemel tundub, et selle jaoks on populaarsemad sellised keeled nagu Java, C # ja C ++.

Hiljuti on mõned ettevõtted hakanud JavaScripti kasutama ka töölauarakenduste loomiseks.

Näiteks ehitati Slacki töölauarakendus koos nimega Electron. See võimaldab teil luua JavaScripti abil töölauarakendusi.

Isiklikult läheksin töölauarakenduse loomisel JavaScripti valikuga. See võimaldab teil osa veebiversioonist pärit koodi uuesti kasutada, kui see teil on.

Kuid ma pole ka töölauarakenduste ekspert, nii et palun andke mulle kommentaaris teada, kui te ei nõustu või nõustute minuga selles küsimuses.

Python 3 või Python 2?

Ma soovitaksin Python 3-d, kuna see on kaasaegsem ja praegusel hetkel on see populaarsem variant.

Joonealune märkus: märkus back-endi koodi ja esiotsa koodi kohta (igaks juhuks, kui te pole terminitega kursis):

Oletame, et soovite teha midagi sellist nagu Instagram.

Seejärel peate looma kasutajaliidese koodi igale seadmetüübile, mida soovite toetada.

Võite kasutada näiteks:

  • IOS-i jaoks kiire
  • Java Androidile
  • JavaScripti veebibrauserite jaoks

Iga koodikomplekt töötab igat tüüpi seadmes / brauseris. See on koodikomplekt, mis määrab, milline saab olema rakenduse paigutus, milline peaks nupud klõpsamisel välja nägema jne.

Siiski vajate endiselt võimalust kasutajate andmeid ja fotosid salvestada. Te soovite neid salvestada oma serverisse ja mitte ainult oma kasutajate seadmetesse, et iga kasutaja jälgija saaks tema fotosid vaadata.

Siit tuleb sisse taustaprogrammi / serveripoolne kood. Peate kirjutama mõne taustaprogrammi, et teha näiteks järgmist:

  • Jälgi, kes keda jälgib
  • Pakkige fotod kokku, et need ei võtaks nii palju salvestusruumi
  • Soovita fotosid ja uusi kontosid iga kasutaja avastus funktsiooni

Niisiis, see on erinevus taustaprogrammi ja esiotsa koodi vahel.

Muide, Python pole ainus hea valik taustaprogrammi / serveripoolse koodi kirjutamiseks. On palju muid populaarseid valikuid, sealhulgas Java-põhine Node.js.

Kas see artikkel meeldis teile? Siis võib teile meeldida ka minu YouTube'i kanal.

Mul on 440 000+ abonendiga programmeerimiskoolituse YouTube'i kanal CS Dojo nimega CS Dojo, kus toodan rohkem sellist artiklit nagu sisu.

Näiteks võivad teile meeldida need videod:

Igatahes suur aitäh minu artikli lugemise eest!