Ką tiksliai galite padaryti su „Python“? Čia pateikiamos 3 pagrindinės „Python“ programos.

Jei galvojate mokytis „Python“ arba neseniai pradėjote jo mokytis, galite savęs paklausti:

"Kam tiksliai galiu naudoti" Python "?"

Na, į tai keblus klausimas, į kurį reikia atsakyti, nes „Python“ yra tiek daug programų.

Tačiau laikui bėgant pastebėjau, kad yra 3 pagrindinės populiarios „Python“ programos:

  • Interneto svetainių kūrimas
  • Duomenų mokslas - įskaitant mašininį mokymąsi, duomenų analizę ir duomenų vizualizavimą
  • Scenarijus

Pakalbėkime apie kiekvieną iš jų paeiliui.

Interneto svetainių kūrimas

„Python“ pagrindu sukurtos žiniatinklio sistemos, tokios kaip „ Django“ ir „ Flask“ , pastaruoju metu tapo labai populiarios kuriant internetą.

Šios žiniatinklio sistemos padeda sukurti „serverio“ kodą („backend“ kodą) „Python“. Tai kodas, kuris veikia jūsų serveryje, priešingai nei naudotojų įrenginiuose ir naršyklėse („front-end“ kodas). Jei nesate susipažinę su skirtumu tarp vidinio kodo ir sąsajos kodo, žr. Mano išnašą žemiau.

Bet palaukite, kam man reikalinga žiniatinklio sistema?

Taip yra todėl, kad žiniatinklio sistema palengvina bendrosios programos logikos kūrimą. Tai apima skirtingų URL susiejimą su „Python“ kodo dalimis, duomenų bazių tvarkymą ir HTML failų, kuriuos vartotojai mato savo naršyklėse, generavimą.

Kokią „Python“ žiniatinklio sistemą turėčiau naudoti?

„Django“ ir „Flask“ yra dvi populiariausios „Python“ žiniatinklio sistemos. Patarčiau naudoti vieną iš jų, jei tik pradedate.

Kuo skiriasi Django ir Kolba?

Yra puikus straipsnis Gareth Dwyer šia tema, todėl leiskite man jį pacituoti čia:

te>

Pagrindiniai kontrastai:

  • Kolba suteikia paprastumą, lankstumą ir smulkų valdymą. Jis yra nepaliestas (jis leidžia jums nuspręsti, kaip norite įgyvendinti dalykus).
  • „Django“ suteikia „viskas įskaičiuota“ patirtį: iš anksto galite gauti administratoriaus skydą, duomenų bazės sąsajas, ORM [objektų-reliacijų atvaizdavimas] ir savo programų bei projektų katalogų struktūrą.

Tikriausiai turėtumėte pasirinkti:

  • Kolba, jei sutelkėte dėmesį į patirtį ir mokymosi galimybes arba norite daugiau kontroliuoti, kuriuos komponentus naudoti (pvz., Kokias duomenų bazes norite naudoti ir kaip norite su jais bendrauti).
  • Django, jei orientuojiesi į galutinį produktą. Ypač jei dirbate tiesiai į priekį nukreipiančioje programoje, tokioje kaip naujienų svetainė, el. Parduotuvė ar tinklaraštis, ir norite, kad visada būtų vienas akivaizdus būdas daryti dalykus.

te>

Kitaip tariant, jei esate pradedantysis, kolba tikriausiai yra geresnis pasirinkimas, nes joje yra mažiau komponentų. Be to, kolba yra geresnis pasirinkimas, jei norite daugiau pritaikyti.

Kita vertus, jei norite sukurti ką nors tiesiai į priekį, Django greičiausiai leis jums greičiau nuvykti.

Dabar, jei norite sužinoti Django, rekomenduoju knygą „Django“ pradedantiesiems. Jį rasite čia.

Čia taip pat galite rasti nemokamus pavyzdinius tos knygos skyrius.

Gerai, eikime prie kitos temos!

Duomenų mokslas - įskaitant mašininį mokymąsi, duomenų analizę ir duomenų vizualizavimą

Pirmiausia, apžvelkime, ką mašina mokymosi yra .

Manau, kad geriausias būdas paaiškinti, kas yra mašininis mokymasis, būtų pateikti paprastą pavyzdį.

Tarkime, kad norite sukurti programą, kuri automatiškai aptiktų tai, kas yra paveikslėlyje.

Taigi, atsižvelgiant į šį paveikslėlį žemiau (1 pav.), Norite, kad jūsų programa pripažintų, jog tai šuo.

Atsižvelgiant į šį žemiau pateiktą vaizdą (2 pav.), Norite, kad jūsų programa pripažintų, jog tai yra lentelė.

Galima sakyti, gerai, aš galiu tiesiog parašyti tam tikrą kodą. Pavyzdžiui, galbūt, jei paveikslėlyje yra daug šviesiai rudų pikselių, tada galime pasakyti, kad tai šuo.

O galbūt galite išsiaiškinti, kaip atpažinti paveikslėlio kraštus. Tada, galite sakyti, jei yra daug tiesių kraštų, tada tai yra stalas.

Tačiau toks požiūris gana greitai tampa keblus. Ką daryti, jei paveikslėlyje yra baltas šuo be rudų plaukų? Ką daryti, jei paveikslėlyje rodomos tik apvalios stalo dalys?

Čia atsiranda mašininis mokymasis.

Mašininis mokymasis paprastai įgyvendina algoritmą, kuris automatiškai nustato duotojo įvesties modelį.

Mašininio mokymosi algoritmui galite duoti, tarkime, 1000 šuns nuotraukų ir 1000 lentelės paveikslėlių. Tada ji sužinos skirtumą tarp šuns ir stalo. Kai suteiksite naują šuns ar stalo paveikslą, jis galės atpažinti, kuris tai yra.

Manau, tai šiek tiek panašu į tai, kaip kūdikis mokosi naujų dalykų. Kaip kūdikis išmoksta, kad vienas dalykas atrodo kaip šuo, o kitas - stalas? Tikriausiai iš krūvos pavyzdžių.

Jūs tikriausiai aiškiai nesakote kūdikiui: „Jei kažkas kailinis ir šviesiai rudų plaukų, tai tikriausiai šuo“.

Jūs tikriausiai tiesiog pasakytumėte: „Tai šuo. Tai taip pat šuo. Ir šis yra stalas. Tas vienas taip pat yra stalas “.

Mašininio mokymosi algoritmai veikia panašiai.

Tą pačią idėją galite pritaikyti:

  • rekomendacijų sistemos (pagalvokite apie „YouTube“, „Amazon“ ir „Netflix“)
  • veido atpažinimas
  • balso atpažinimas

be kitų programų.

Populiariausi mašininio mokymosi algoritmai, apie kuriuos galbūt girdėjote, yra šie:

  • Neuroniniai tinklai
  • Gilus mokymasis
  • Palaikykite vektorines mašinas
  • Atsitiktinis miškas

Norėdami išspręsti anksčiau paaiškintą paveikslėlio žymėjimo problemą, galite naudoti bet kurį iš aukščiau pateiktų algoritmų.

Python skirtas mašininiam mokymuisi

Yra populiarios mašininio mokymosi bibliotekos ir „Python“ sistemos.

Du populiariausi yra „ scikit-learn“ ir „ TensorFlow“ .

  • „scikit-learn“ yra su kai kuriais populiaresniais įmontuotais mašininio mokymosi algoritmais. Kai kuriuos iš jų paminėjau aukščiau.
  • „TensorFlow“ yra labiau žemo lygio biblioteka, leidžianti kurti pasirinktinius mašininio mokymosi algoritmus.

Jei dar tik pradedate mašininio mokymosi projektą, rekomenduočiau pirmiausia pradėti nuo „scikit-learn“. Jei pradėtumėte spręsti efektyvumo problemas, aš pradėčiau nagrinėti „TensorFlow“.

Kaip turėčiau išmokti mašininio mokymosi?

Norėdami išmokti mašininio mokymosi pagrindų, rekomenduočiau arba Stanfordo, arba „Caltech“ mašininio mokymosi kursą.

Atkreipkite dėmesį, kad norint suprasti kai kurias šių kursų medžiagas, jums reikia pagrindinių skaičiavimo ir tiesinės algebros žinių.

Tada aš praktikuosiu tai, ko išmokote iš vieno iš tų kursų su Kaggle. Tai svetainė, kurioje žmonės varžosi dėl geriausio mašininio mokymosi algoritmo konkrečiai problemai spręsti. Jie taip pat turi gražių pamokų pradedantiesiems.

O duomenų analizė ir vizualizacija?

Norėdamas padėti jums suprasti, kaip tai gali atrodyti, leiskite pateikti čia paprastą pavyzdį.

Tarkime, dirbate įmonėje, kuri kai kuriuos produktus parduoda internete.

Tada, kaip duomenų analitikas, galite piešti tokią juostinę diagramą.

Iš šio grafiko galime pasakyti, kad vyrai šį sekmadienį nusipirko daugiau nei 400 šio produkto vienetų, o moterys - apie 350 šio produkto vienetų.

Kaip duomenų analitikas, galite pateikti kelis galimus šio skirtumo paaiškinimus.

Vienas akivaizdžių galimų paaiškinimų yra tas, kad šis produktas labiau patinka vyrams nei moterims. Kitas galimas paaiškinimas gali būti tai, kad imties dydis yra per mažas ir šį skirtumą nulėmė tiesiog atsitiktinumas. Ir dar vienas galimas paaiškinimas gali būti tas, kad vyrai šį produktą labiau linkę pirkti tik sekmadienį dėl kažkokių priežasčių.

Norėdami suprasti, kuris iš šių paaiškinimų yra teisingas, galite nupiešti kitą panašų grafiką.

Užuot rodę tik sekmadienio duomenis, mes žiūrime visos savaitės duomenis. Kaip matote, iš šios diagramos matome, kad šis skirtumas yra gana pastovus skirtingomis dienomis.

Iš šios nedidelės analizės galite padaryti išvadą, kad įtikinamiausias šio skirtumo paaiškinimas yra tas, kad šis produktas yra tiesiog labiau populiarus tarp vyrų nei moterų.

Kita vertus, ką daryti, jei vietoj to matote tokį grafiką?

Tada kas paaiškina skirtumą sekmadienį?

Galima sakyti, galbūt vyrai dėl kažkokių priežasčių linkę pirkti daugiau šio produkto tik sekmadienį. Arba galbūt tai buvo tik sutapimas, kad vyrai sekmadienį jų nusipirko daugiau.

Taigi, tai yra supaprastintas pavyzdys, kaip duomenų analizė gali atrodyti realiame pasaulyje.

Duomenų analizės darbas, kurį atlikau dirbdamas „Google“ ir „Microsoft“, buvo labai panašus į šį pavyzdį - tik sudėtingesnis. Tokiai analizei iš tikrųjų naudojau „Python“ sistemoje „Google“, o „Microsoft“ - „JavaScript“.

Aš naudoju SQL abiejose įmonėse duomenims iš mūsų duomenų bazių rinkti. Tada norėčiau vizualizuoti ir analizuoti šiuos duomenis: „Python“ ir „Matplotlib“ („Google“) arba „JavaScript“ ir „D3.js“ („Microsoft“).

Duomenų analizė / vizualizavimas naudojant „Python“

Viena populiariausių duomenų vizualizavimo bibliotekų yra „Matplotlib“.

Pradėti yra gera biblioteka, nes:

  • Pradėti lengva
  • Tuo remiasi kai kurios kitos bibliotekos, pavyzdžiui, „seaborn“. Taigi, mokymasis „Matplotlib“ padės vėliau išmokti šias kitas bibliotekas.

Kaip turėčiau išmokti duomenų analizės / vizualizacijos su „Python“?

Pirmiausia turėtumėte išmokti duomenų analizės ir vizualizavimo pagrindus. Kai internete ieškojau gerų šaltinių, negalėjau jų rasti. Taigi galų gale padariau „YouTube“ vaizdo įrašą šia tema:

Taip pat baigiau išsamų šios temos kursą „Pluralsight“, kurį galite nemokamai lankyti užsiregistravę jų 10 dienų nemokamoje bandomojoje versijoje.

Aš rekomenduočiau juos abu.

Sužinoję duomenų analizės ir vizualizavimo pagrindus, taip pat bus naudingi statistikos pagrindai iš tokių svetainių kaip „Coursera“ ir „Khan Academy“.

Scenarijus

Kas yra scenarijus?

Scenarijus paprastai reiškia mažų programų, skirtų paprastoms užduotims automatizuoti, rašymą.

Taigi leiskite man pateikti pavyzdį iš mano asmeninės patirties čia.

Anksčiau dirbau mažame startuolyje Japonijoje, kur turėjome el. Pašto palaikymo sistemą. Tai buvo sistema, skirta mums atsakyti į klausimus, kuriuos klientai mums atsiuntė el. Paštu.

Kai ten dirbau, turėjau užduotį suskaičiuoti el. Laiškų, kuriuose buvo tam tikri raktiniai žodžiai, skaičių, kad galėtume analizuoti gautus el.

Galėjome tai padaryti rankiniu būdu, bet aš parašiau paprastą programą / paprastą scenarijų, kad automatizuočiau šią užduotį.

Tiesą sakant, tada mes naudojome „Ruby“, tačiau „Python“ taip pat yra tinkama kalba tokiai užduočiai atlikti. „Python“ tinka tokio tipo užduotims daugiausia dėl to, kad ji turi gana paprastą sintaksę ir ją lengva parašyti. Taip pat greitai parašyti ką nors mažo ir išbandyti.

Ką apie įterptąsias programas?

Nesu įterptųjų programų ekspertas, bet žinau, kad „Python“ dirba su „Rasberry Pi“. Atrodo, kad tai yra populiari aparatūros mėgėjų programa.

O kaip su žaidimais?

Žaidimams kurti galite naudoti biblioteką „PyGame“, tačiau tai nėra pats populiariausias žaidimų variklis. Galite jį panaudoti kurdami hobio projektą, bet aš asmeniškai jo nepasirinkčiau, jei rimtai žiūrite į žaidimų kūrimą.

Verčiau rekomenduočiau pradėti naudotis „Unity“ su C #, kuris yra vienas populiariausių žaidimų variklių. Tai leidžia jums sukurti žaidimą daugybei platformų, įskaitant „Mac“, „Windows“, „iOS“ ir „Android“.

Ką apie darbalaukio programas?

Galite sukurti vieną su „Python“ naudodami „Tkinter“, tačiau tai taip pat neatrodo populiariausias pasirinkimas.

Vietoj to, atrodo, kad tokios kalbos kaip „Java“, „C #“ ir „C ++“ yra populiaresnės.

Pastaruoju metu kai kurios įmonės taip pat pradėjo naudoti „JavaScript“ darbalaukio programoms kurti.

Pavyzdžiui, „Slack“ darbalaukio programa buvo sukurta naudojant pavadinimą „Electron“. Tai leidžia jums kurti darbalaukio programas su „JavaScript“.

Asmeniškai, jei kurčiau darbalaukio programą, rinkčiausi „JavaScript“ parinktį. Tai leidžia jums pakartotinai naudoti dalį kodo iš žiniatinklio versijos, jei ją turite.

Tačiau aš taip pat nesu darbalaukio programų ekspertas, todėl praneškite man komentare, jei nesutinkate ar sutinkate su manimi.

„Python 3“ ar „Python 2“?

Aš rekomenduočiau „Python 3“, nes jis yra modernesnis ir šiuo metu yra populiaresnis variantas.

Išnaša: Pastaba apie galinį kodą ir sąsajos kodą (tik tuo atveju, jei nesate susipažinę su terminais):

Tarkime, kad norite sukurti kažką panašaus į „Instagram“.

Tada turėsite sukurti kiekvieno įrenginio, kurį norite palaikyti, tipo sąsajos kodą.

Galite naudoti, pavyzdžiui:

  • „Swift“, skirta „iOS“
  • „Java“, skirta „Android“
  • „Java“ naršyklėms

Kiekvienas kodo rinkinys bus paleistas kiekvieno tipo įrenginyje / naršyklėje. Tai bus kodo rinkinys, nustatantis, koks bus programos išdėstymas, kaip turėtų atrodyti mygtukai, juos spustelėjus ir pan.

Tačiau jums vis tiek reikės galimybės saugoti vartotojų informaciją ir nuotraukas. Jas norėsite laikyti savo serveryje, o ne tik savo vartotojų įrenginiuose, kad kiekvieno vartotojo sekėjai galėtų peržiūrėti jo nuotraukas.

Čia atsiranda backend kodas / serverio kodas. Norėdami atlikti tokius veiksmus, turėsite parašyti šiek tiek backend kodo:

  • Stebėkite, kas ką seka
  • Suspauskite nuotraukas, kad jos neužimtų tiek daug vietos
  • Rekomenduokite nuotraukas ir naujas paskyras kiekvienam vartotojui naudodamiesi atradimo funkcija

Taigi, tai yra skirtumas tarp programinės įrangos ir „front-end“ kodų.

Beje, „Python“ nėra vienintelis geras pasirinkimas rašant vidinį / serverio kodą. Yra daugybė kitų populiarių pasirinkimų, įskaitant „Node.js“, pagrįstą „JavaScript“.

Patiko šis straipsnis? Tada jums taip pat gali patikti mano „YouTube“ kanalas.

Turiu daugiau nei 440 000 prenumeratorių turintį programavimo mokymo „YouTube“ kanalą „CS Dojo“, kuriame yra daugiau nei 440 000 prenumeratorių.

Pavyzdžiui, jums gali patikti šie vaizdo įrašai:

Bet kokiu atveju, labai ačiū, kad perskaitėte mano straipsnį!