Mitä tarkalleen voit tehdä Pythonilla? Tässä on Pythonin kolme pääsovellusta.

Jos ajattelet oppia Pythonia - tai jos aloitit äskettäin sen oppimisen - saatat kysyä itseltäsi:

"Mihin tarkalleen voin käyttää Pythonia?"

No, tähän on hankala vastata, koska Pythonille on niin monia sovelluksia.

Mutta ajan mittaan olen havainnut, että Pythonilla on 3 suosittua sovellusta:

  • Verkkokehitys
  • Datatiede - mukaan lukien koneoppiminen, data-analyysi ja tietojen visualisointi
  • Komentosarjat

Puhutaan niistä jokaisesta vuorotellen.

Verkkokehitys

Pythoniin perustuvat verkkokehykset, kuten Django ja Flask, ovat viime aikoina tulleet erittäin suosituiksi verkkokehityksessä.

Nämä verkkokehykset auttavat sinua luomaan palvelinpuolen koodin (taustakoodin) Pythonissa. Se on koodi, joka toimii palvelimellasi, toisin kuin käyttäjien laitteissa ja selaimissa (käyttöliittymäkoodi). Jos et ole perehtynyt taustakoodin ja käyttöliittymäkoodin väliseen eroon, katso alla oleva alaviite.

Mutta odota, miksi tarvitsen verkkokehyksen?

Tämä johtuu siitä, että verkkokehys helpottaa yhteisen taustalogiikan rakentamista. Tähän sisältyy eri URL-osoitteiden kartoittaminen Python-koodin paloiksi, tietokantojen käsittely ja HTML-tiedostojen luominen, joita käyttäjät näkevät selaimissaan.

Mitä Python-verkkokehystä minun pitäisi käyttää?

Django ja Flask ovat kaksi suosituinta Python-verkkokehystä. Suosittelen käyttämään yhtä niistä, jos olet vasta aloittamassa.

Mitä eroa on Djangolla ja pullolla?

Gareth Dwyeristä on loistava artikkeli tästä aiheesta, joten anna minun lainata se täällä:

te>

Tärkeimmät kontrastit:

  • Pullo tarjoaa yksinkertaisuuden, joustavuuden ja hienorakeisen hallinnan. Se on avaamaton (sen avulla voit päättää, miten haluat toteuttaa asiat).
  • Django tarjoaa kattavan kokemuksen: saat hallintapaneelin, tietokantaliittymät, ORM [objektisuhdekartoituksen] ja hakemistorakenteen sovelluksillesi ja projekteillesi heti.

Sinun pitäisi todennäköisesti valita:

  • Pullo, jos olet keskittynyt kokemukseen ja oppimismahdollisuuksiin tai haluat enemmän hallintaa siitä, mitä komponentteja haluat käyttää (kuten mitä tietokantoja haluat käyttää ja miten haluat olla vuorovaikutuksessa niiden kanssa).
  • Django, jos olet keskittynyt lopputuotteeseen. Varsinkin jos työskentelet suoraviivaisen sovelluksen, kuten uutissivuston, verkkokaupan tai blogin, kanssa ja haluat, että siellä on aina yksi, ilmeinen tapa tehdä asioita.

te>

Toisin sanoen, jos olet aloittelija, pullo on todennäköisesti parempi valinta, koska siinä on vähemmän komponentteja. Myös pullo on parempi valinta, jos haluat enemmän mukautuksia.

Toisaalta, jos haluat rakentaa jotain suoraviivaista, Django antaa sinun todennäköisesti päästä sinne nopeammin.

Jos haluat oppia Djangoa, suosittelen kirjaa nimeltä Django aloittelijoille. Löydät sen täältä.

Löydät myös kirjan ilmaiset esimerkkiluvut täältä.

Okei, mennään seuraavaan aiheeseen!

Datatiede - mukaan lukien koneoppiminen, data-analyysi ja tietojen visualisointi

Ensinnäkin tarkistetaan, mitä koneoppiminen on .

Mielestäni paras tapa selittää koneoppiminen on antaa sinulle yksinkertainen esimerkki.

Oletetaan, että haluat kehittää ohjelman, joka tunnistaa kuvan automaattisesti.

Joten, koska tämä kuva on alla (kuva 1), haluat, että ohjelmasi tunnistaa, että se on koira.

Ottaen huomioon tämän toisen alla (Kuva 2), haluat ohjelman tunnistavan, että se on taulukko.

Voit sanoa, että voin vain kirjoittaa koodin tehdäksesi sen. Esimerkiksi, jos kuvassa on paljon vaaleanruskeaa pikseliä, voimme sanoa, että se on koira.

Tai ehkä, voit selvittää, kuinka tunnistaa reunat kuvassa. Sitten saatat sanoa, että jos on monia suoria reunoja, niin se on pöytä.

Tällainen lähestymistapa muuttuu kuitenkin hankalaksi melko nopeasti. Entä jos kuvassa on valkoinen koira, jolla ei ole ruskeita hiuksia? Entä jos kuvassa näkyy vain pöydän pyöreät osat?

Tässä tulee koneoppiminen.

Koneoppiminen toteuttaa tyypillisesti algoritmin, joka tunnistaa automaattisesti kuvion annetussa syötteessä.

Voit antaa esimerkiksi 1000 kuvaa koirasta ja 1000 kuvaa taulukosta koneoppimisalgoritmille. Sitten se oppii eron koiran ja pöydän välillä. Kun annat sille uuden kuvan joko koirasta tai pöydästä, se pystyy tunnistamaan, mikä se on.

Mielestäni tämä on jonkin verran samanlainen kuin vauva oppii uusia asioita. Kuinka vauva oppii, että yksi asia näyttää koiralta ja toinen pöydältä? Luultavasti joukosta esimerkkejä.

Et todennäköisesti sano nimenomaisesti vauvalle: "Jos jokin on pörröistä ja siinä on vaaleanruskeat hiukset, niin se on todennäköisesti koira."

Luultavasti vain sanoisit: "Se on koira. Tämä on myös koira. Ja tämä on pöytä. Se on myös pöytä. "

Koneoppimisalgoritmit toimivat paljon samalla tavalla.

Voit soveltaa samaa ajatusta:

  • suositusjärjestelmät (ajattele YouTube, Amazon ja Netflix)
  • kasvojen tunnistus
  • äänentunnistus

muiden sovellusten joukossa.

Suosittuja koneoppimisalgoritmeja, joista olet ehkä kuullut, ovat:

  • Neuroverkot
  • Syvä oppiminen
  • Tukea vektorikoneita
  • Satunnainen metsä

Voit käyttää mitä tahansa yllä olevista algoritmeista ratkaistakseni aiemmin selittämäni kuvaleimausongelman.

Python koneoppimiseen

Pythonille on olemassa suosittuja koneoppimisen kirjastoja ja kehyksiä.

Kaksi suosituinta niistä ovat scikit-learn ja TensorFlow .

  • scikit-learn-palvelussa on joitain suosituimpia sisäänrakennettuja koneoppimisalgoritmeja. Mainitsin joitain niistä yllä.
  • TensorFlow on enemmän matalan tason kirjasto, jonka avulla voit rakentaa mukautettuja koneoppimisalgoritmeja.

Jos olet vasta aloittamassa koneoppimisprojektia, suosittelen ensin aloittamaan scikit-learn. Jos aloitat tehokkuusongelmia, aloitan TensorFlow'n tutkimisen.

Kuinka minun pitäisi oppia koneoppiminen?

Koneoppimisen perusteiden oppimiseksi suosittelen joko Stanfordin tai Caltechin koneoppimiskurssia.

Huomaa, että tarvitset perustietoa laskennasta ja lineaarisesta algebrasta ymmärtääksesi osan näiden kurssien materiaaleista.

Sitten voisin harjoitella sitä, mitä olet oppinut yhdeltä kurssista Kagglen kanssa. Se on verkkosivusto, jossa ihmiset kilpailevat rakentamaan parhaan koneoppimisalgoritmin tiettyä ongelmaa varten. Heillä on myös mukavia oppaita aloittelijoille.

Entä tietojen analysointi ja tietojen visualisointi?

Annan sinulle yksinkertaisen esimerkin, jotta voisit ymmärtää, miltä nämä voivat näyttää.

Oletetaan, että työskentelet yrityksessä, joka myy joitain tuotteita verkossa.

Sitten voit analyytikkona piirtää tämän tyyppisen pylväsdiagrammin.

Tästä kaaviosta voimme kertoa, että miehet ostivat yli 400 yksikköä tätä tuotetta ja naiset ostivat noin 350 yksikköä tätä tuotetta tänä sunnuntaina.

Data-analyytikkona saatat keksiä muutamia mahdollisia selityksiä tälle erolle.

Yksi ilmeinen mahdollinen selitys on, että tämä tuote on suositumpi miesten kuin naisten keskuudessa. Toinen mahdollinen selitys saattaa olla, että otoskoko on liian pieni ja tämä ero johtui vain sattumasta. Ja vielä yksi mahdollinen selitys saattaa olla, että miehet ostavat tätä tuotetta enemmän vain sunnuntaina jostain syystä.

Voit ymmärtää mikä näistä selityksistä on oikea, piirtämällä toinen tämän tyyppinen kaavio.

Sen sijaan, että näytämme vain sunnuntain tietoja, tarkastelemme koko viikon tietoja. Kuten näette, tästä kaaviosta voimme nähdä, että tämä ero on melko tasainen eri päivinä.

Tämän pienen analyysin perusteella voit päätellä, että vakuuttavin selitys tälle erolle on, että tämä tuote on yksinkertaisesti suosittu miesten kuin naisten keskuudessa.

Toisaalta, entä jos näet sen sijaan tämän kaltaisen kaavion?

Sitten mikä selittää eron sunnuntaina?

Saatat sanoa, ehkä miehet ostavat enemmän tätä tuotetta vain sunnuntaina jostain syystä. Tai ehkä se oli vain sattumaa, että miehet ostivat sitä enemmän sunnuntaina.

Joten tämä on yksinkertaistettu esimerkki siitä, miltä data-analyysi voi näyttää todellisessa maailmassa.

Tietojen analysointityö, jonka tein työskennellessäni Googlessa ja Microsoftissa, oli hyvin samanlainen kuin tässä esimerkissä - vain monimutkaisempi. Käytin itse asiassa Pythonia Googlessa tällaiseen analyysiin, kun taas Microsoftin JavaScriptiä.

Käytin SQL: ää molemmissa yrityksissä hakemaan tietoja tietokannoistamme. Sitten käytän joko Pythonia ja Matplotlibia (Googlessa) tai JavaScriptiä ja D3.js: ää (Microsoftissa) näiden tietojen visualisointiin ja analysointiin.

Tietojen analysointi / visualisointi Pythonilla

Yksi suosituimmista kirjastoista tietojen visualisointiin on Matplotlib.

Aloittamiseen on hyvä kirjasto, koska:

  • Aloittaminen on helppoa
  • Jotkut muut kirjastot, kuten seaborn, perustuvat siihen. Joten Matplotlibin oppiminen auttaa sinua oppimaan nämä muut kirjastot myöhemmin.

Kuinka minun pitäisi oppia tietojen analysointi / visualisointi Pythonilla?

Sinun tulisi ensin oppia tietojen analysoinnin ja visualisoinnin perusteet. Kun etsin hyviä resursseja tälle verkossa, en löytänyt yhtään. Joten päädyin tekemään YouTube-videon tästä aiheesta:

Päätin myös tehdä täydellisen kurssin tästä aiheesta Pluralsightista, jonka voit suorittaa ilmaiseksi kirjautumalla heidän 10 päivän ilmaiseen kokeiluun.

Suosittelisin molempia.

Tietojen analysoinnin ja visualisoinnin perusteiden oppimisen jälkeen myös Coursera ja Khan Academy -sivustojen tilastojen oppiminen ovat hyödyllisiä.

Komentosarjat

Mikä on komentosarja?

Komentosarjat viittaavat yleensä pienten ohjelmien kirjoittamiseen, jotka on suunniteltu automatisoimaan yksinkertaisia ​​tehtäviä.

Joten anna minun antaa sinulle esimerkki henkilökohtaisesta kokemuksestani täällä.

Työskentelin aiemmin pienessä startupissa Japanissa, jossa meillä oli sähköpostitukijärjestelmä. Se oli järjestelmä, jonka avulla voimme vastata kysymyksiin, jotka asiakkaat lähettivät meille sähköpostitse.

Kun työskentelin siellä, minulla oli tehtävä laskea tiettyjä avainsanoja sisältävien sähköpostien määrä, jotta voimme analysoida saamiamme sähköposteja.

Olisimme voineet tehdä sen manuaalisesti, mutta sen sijaan kirjoitin yksinkertaisen ohjelman / yksinkertaisen komentosarjan tämän tehtävän automatisoimiseksi.

Itse asiassa käytimme tuolloin Rubyä, mutta Python on myös hyvä kieli tällaiseen tehtävään. Python soveltuu tämän tyyppisiin tehtäviin lähinnä siksi, että sillä on suhteellisen yksinkertainen syntakse ja se on helppo kirjoittaa. On myös nopea kirjoittaa jotain pientä sen kanssa ja testata sitä.

Entä upotetut sovellukset?

En ole upotettujen sovellusten asiantuntija, mutta tiedän, että Python toimii Rasberry Pi: n kanssa. Se näyttää olevan suosittu sovellus laitteistoharrastajien keskuudessa.

Entä pelaaminen?

Voit käyttää PyGame-kirjastoa pelien kehittämiseen, mutta se ei ole siellä suosituin pelimoottori. Voisit käyttää sitä harrastusprojektin rakentamiseen, mutta en henkilökohtaisesti valitsisi sitä, jos olet tosissasi pelikehityksestä.

Sen sijaan suosittelen aloittamista Unityn kanssa C #: lla, joka on yksi suosituimmista pelimoottoreista. Sen avulla voit rakentaa pelin monille alustoille, mukaan lukien Mac, Windows, iOS ja Android.

Entä työpöytäsovellukset?

Voit tehdä sellaisen Pythonilla Tkinterin avulla, mutta se ei myöskään tunnu olevan suosituin valinta.

Sen sijaan näyttää siltä, ​​että kielet, kuten Java, C # ja C ++, ovat suosittuja tässä.

Viime aikoina jotkut yritykset ovat alkaneet käyttää JavaScriptiä myös työpöytäsovellusten luomiseen.

Esimerkiksi Slackin työpöytäsovellus rakennettiin nimellä Electron. Sen avulla voit rakentaa työpöytäsovelluksia JavaScriptillä.

Henkilökohtaisesti, jos rakensin työpöytäsovellusta, valitsisin JavaScript-vaihtoehdon. Sen avulla voit käyttää osan koodista verkkoversiosta, jos sinulla on se.

En kuitenkaan ole myöskään työpöytäsovellusten asiantuntija, joten ilmoita minulle kommentissa, jos olet eri mieltä tai samaa mieltä kanssani tässä asiassa.

Python 3 tai Python 2?

Suosittelen Python 3: ta, koska se on nykyaikaisempi ja suosituin vaihtoehto tässä vaiheessa.

Alaviite: Huomautus taustakoodista vs. käyttöliittymäkoodista (vain jos et tunne termejä):

Oletetaan, että haluat tehdä jotain Instagramia.

Sitten sinun on luotava käyttöliittymäkoodi kullekin laitetyypille, jota haluat tukea.

Voit käyttää esimerkiksi:

  • Swift iOS: lle
  • Java Androidille
  • JavaScript selaimille

Jokainen koodisarja toimii jokaisessa laitetyypissä / selaimessa. Tämä on koodisarja, joka määrittää sovelluksen asettelun, miltä painikkeiden tulisi näyttää, kun napsautat niitä jne.

Tarvitset kuitenkin edelleen mahdollisuuden tallentaa käyttäjien tietoja ja valokuvia. Haluat tallentaa ne palvelimellesi eikä vain käyttäjien laitteisiin, jotta kunkin käyttäjän seuraajat voivat tarkastella hänen valokuviaan.

Täältä tulee taustakoodi / palvelinpuolen koodi. Sinun on kirjoitettava taustakoodi, jotta voit tehdä esimerkiksi:

  • Seuraa mitä kuka seuraa
  • Pakkaa valokuvat, jotta ne eivät vie niin paljon tallennustilaa
  • Suosittelen kuvia ja uusia tilejä jokaiselle käyttäjälle löytö ominaisuuden

Joten tämä on ero taustakoodin ja käyttöliittymäkoodin välillä.

Muuten, Python ei ole ainoa hyvä valinta backend / palvelinpuolen koodin kirjoittamiseen. On olemassa monia muita suosittuja valintoja, mukaan lukien Node.js, joka perustuu JavaScriptiin.

Tykkäsitkö tästä artikkelista? Sitten saatat pitää myös YouTube-kanavastani.

Minulla on ohjelmointikoulutuksen YouTube-kanava CS Dojo, jolla on yli 440 000 tilaajaa, ja tuotan enemmän tämän artikkelin kaltaista sisältöä.

Saatat esimerkiksi pitää näistä videoista:

Joka tapauksessa, kiitos paljon artikkelini lukemisesta!