Pontosan mit lehet csinálni a Pythonnal? Íme a Python 3 fő alkalmazása.

Ha Python tanulására gondolsz - vagy ha nemrég kezdték el megtanulni -, akkor felteszi magának a kérdést:

"Pontosan mire használhatom a Pythont?"

Nos, ez egy trükkös kérdés, amire válaszolni kell, mert nagyon sok alkalmazás van a Python számára.

De idővel megfigyeltem, hogy a Pythonnak 3 fő népszerű alkalmazása létezik:

  • Webfejlesztés
  • Adattudomány - beleértve a gépi tanulást, az adatok elemzését és az adatok megjelenítését
  • Szkriptelés

Beszéljünk mindegyikről egymás után.

Webfejlesztés

A Pythonon alapuló webkeretek, mint például a Django és a Flask , a közelmúltban nagyon népszerűvé váltak a webfejlesztés szempontjából.

Ezek a webkeretek segítenek a szerveroldali kód (backend kód) létrehozásában a Pythonban. Ez a kód fut a szerveren, szemben a felhasználók eszközeivel és böngészőivel (kezelői kód). Ha nem ismeri a háttérkép és a kezelőfelület kódja közötti különbséget, kérjük, olvassa el az alábbi lábjegyzetemet.

De várjon, miért van szükségem webes keretrendszerre?

Ez azért van, mert egy webes keretrendszer megkönnyíti a közös háttér-logika felépítését. Ez magában foglalja a különböző URL-ek leképezését Python-kód darabokra, az adatbázisokkal való foglalkozást és a felhasználók által a böngészőikben látott HTML-fájlok létrehozását.

Melyik Python webkeretet használjam?

A Django és a Flask a legnépszerűbb Python webkeret. Azt javaslom, hogy használja egyiküket, ha még csak most kezdi.

Mi a különbség Django és Lombik között?

Van egy kiváló cikk Gareth Dwyer erről a témáról, ezért hadd idézzem itt:

te>

Fő kontrasztok:

  • A lombik egyszerűséget, rugalmasságot és finom szemcsézést biztosít. Vélemény nélküli (lehetővé teszi, hogy eldöntse, hogyan szeretné megvalósítani a dolgokat).
  • A Django mindenre kiterjedő élményt nyújt: az adminisztrációs panelt, az adatbázis-interfészeket, az ORM-et [objektum-relációs leképezés], valamint az alkalmazások és projektek könyvtárstruktúráját már a dobozon kívül kapja.

Valószínűleg a következőket kell választania:

  • Lombik, ha a tapasztalatokra és a tanulási lehetőségekre összpontosít, vagy ha jobban szeretné ellenőrizni, hogy mely összetevőket használja (például milyen adatbázisokat szeretne használni, és hogyan kíván velük kölcsönhatásba lépni).
  • Django, ha a végtermékre koncentrálsz. Különösen, ha olyan egyszerű alkalmazáson dolgozik, mint például egy híroldal, egy e-bolt vagy egy blog, és azt szeretné, hogy mindig egyetlen, nyilvánvaló módja legyen a dolgoknak.

te>

Más szavakkal: Ha kezdő vagy, a lombik valószínűleg jobb választás, mert kevesebb összetevővel kell foglalkozni. Ezenkívül a lombik jobb választás, ha további testreszabást szeretne.

Másrészt, ha valami egyenesen akar építeni, Django valószínűleg gyorsabban eljut oda.

Ha most Djangót akarja megtanulni, ajánlom a Django kezdőknek című könyvet. Itt megtalálja.

A könyv ingyenes mintacsoportjait itt is megtalálja.

Oké, folytassuk a következő témával!

Adattudomány - beleértve a gépi tanulást, az adatok elemzését és az adatok megjelenítését

Először is, nézzük meg, hogy mi a gépi tanulás is .

Úgy gondolom, hogy a gépi tanulás magyarázatának legjobb módja az lenne, ha egy egyszerű példát mondanék.

Tegyük fel, hogy olyan programot szeretne kifejleszteni, amely automatikusan felismeri a képen lévőket.

Tehát, tekintettel erre az alábbi képre (1. kép), azt szeretné, hogy programja felismerje, hogy ez egy kutya.

Tekintettel erre a másikra (2. kép), azt szeretné, hogy a program felismerje, hogy ez egy táblázat.

Mondhatnád, nos, csak írhatok ehhez kódot. Például, ha sok világosbarna pixel van a képen, akkor azt mondhatjuk, hogy ez egy kutya.

Vagy talán kitalálhatja, hogyan lehet felismerni az éleket a képen. Aztán azt mondhatja, ha sok egyenes él van, akkor ez egy asztal.

Ez a fajta megközelítés azonban elég gyorsan trükkössé válik. Mi van, ha a képen fehér kutya van, barna szőr nélkül? Mi van, ha a képen csak az asztal kerek részei láthatók?

Itt jön be a gépi tanulás.

A gépi tanulás általában olyan algoritmust valósít meg, amely automatikusan észlel egy mintát az adott bemenetben.

Adhat mondjuk 1000 képet egy kutyáról és 1000 képet egy tábláról egy gépi tanulási algoritmusnak. Ezután megtanulja a különbséget a kutya és az asztal között. Amikor új képet ad neki egy kutyáról vagy egy asztalról, képes lesz felismerni, hogy melyikről van szó.

Azt hiszem, ez némileg hasonlít ahhoz, ahogy a baba új dolgokat tanul meg. Hogyan tanulhatja meg a baba, hogy egy dolog úgy néz ki, mint egy kutya, a másik pedig egy asztal? Valószínűleg egy halom példából.

Valószínűleg nem mondja meg kifejezetten a csecsemőnek: "Ha valami szőrös és világosbarna hajú, akkor valószínűleg kutya."

Valószínűleg csak azt mondanád: „Ez egy kutya. Ez is egy kutya. És ez egy asztal. Ez is egy asztal. ”

A gépi tanulási algoritmusok ugyanúgy működnek.

Ugyanezt az ötletet alkalmazhatja:

  • ajánlási rendszerek (gondoljunk a YouTube-ra, az Amazon-ra és a Netflixre)
  • arcfelismerés
  • hangfelismerés

egyéb alkalmazások között.

Népszerű gépi tanulási algoritmusok, amelyekről már hallottál:

  • Ideghálózatok
  • Mély tanulás
  • Támogatja a vektoros gépeket
  • Véletlen erdő

A fenti algoritmusok bármelyikével megoldhatja az előbb kifejtett képcímkézési problémát.

Python gépi tanuláshoz

Vannak népszerű gépi tanulási könyvtárak és keretrendszerek a Python számára.

A legnépszerűbbek közül kettő a scikit-learn és a TensorFlow .

  • A scikit-learn beépíti a népszerűbb gépi tanulási algoritmusokat. Néhányat említettem fentebb.
  • A TensorFlow inkább egy alacsony szintű könyvtár, amely lehetővé teszi egyedi gépi tanulási algoritmusok készítését.

Ha csak egy gépi tanulási projektbe kezd, akkor azt javasoljuk, hogy először a scikit-learn programmal kezdjen. Ha hatékonysági problémákba ütközik, akkor elkezdem a TensorFlow-t vizsgálni.

Hogyan kell megtanulnom a gépi tanulást?

A gépi tanulás alapjainak elsajátításához ajánlom Stanford vagy Caltech gépi tanulási tanfolyamát.

Felhívjuk figyelmét, hogy a tanfolyam néhány anyagának megértéséhez alapvető ismeretekre van szüksége a számításról és a lineáris algebráról.

Aztán gyakorolnám, amit Kaggle-vel tanultál az egyik tanfolyamon. Ez egy olyan webhely, ahol az emberek versenyeznek a legjobb gépi tanulási algoritmus elkészítéséért egy adott problémára. Szép oktatóanyagok vannak a kezdők számára is.

Mi a helyzet az adatok elemzésével és az adatok megjelenítésével?

Hogy segítsen megérteni, hogy nézhetnek ki ezek, hadd mondjak egy egyszerű példát.

Tegyük fel, hogy egy olyan vállalatnál dolgozik, amely néhány terméket online értékesít.

Ezután adatelemzőként megrajzolhat egy ilyen oszlopdiagramot.

Ebből a grafikonból elmondhatjuk, hogy a férfiak több mint 400 egységet vásároltak ebből a termékből, a nők pedig körülbelül 350 egységet vásároltak ebből a termékből ezen a vasárnapon.

Adatelemzőként feltehet néhány lehetséges magyarázatot erre a különbségre.

Az egyik nyilvánvaló lehetséges magyarázat az, hogy ez a termék népszerűbb a férfiak körében, mint a nők körében. Egy másik lehetséges magyarázat az lehet, hogy a minta mérete túl kicsi, és ezt a különbséget csak a véletlen okozta. És még egy lehetséges magyarázat lehet, hogy a férfiak valamilyen oknál fogva inkább csak vasárnap vásárolnak többet.

Annak megértéséhez, hogy melyik magyarázat helyes, rajzoljon egy másik ehhez hasonló grafikont.

Ahelyett, hogy csak a vasárnapra vonatkozó adatokat jelenítenénk meg, egy teljes hét adatait nézzük. Amint láthatja, ebből a grafikonból láthatjuk, hogy ez a különbség meglehetősen következetes a különböző napokban.

Ebből a kis elemzésből arra a következtetésre juthat, hogy ennek a különbségnek a legmeggyőzőbb magyarázata az, hogy ez a termék egyszerűen népszerűbb a férfiak körében, mint a nők körében.

Másrészt mi van, ha helyette egy ilyen grafikont lát?

Akkor mi magyarázza a vasárnapi különbséget?

Mondhatnád, talán a férfiak valamilyen oknál fogva csak vasárnap vásárolnak többet ebből a termékből. Vagy talán csak véletlen volt, hogy a férfiak vasárnap többet vásároltak belőle.

Tehát ez egy leegyszerűsített példa arra, hogy az adatelemzés hogyan nézhet ki a való világban.

Az adatelemzési munka, amelyet a Google-nál és a Microsoftnál dolgoztam, nagyon hasonlított ehhez a példához - csak összetettebb. Valójában a Python-ot használtam a Google-nál ilyen elemzéshez, míg a JavaScript-et a Microsoft-nál.

Mindkét vállalatnál használtam SQL-t, hogy adatokat gyűjtsek az adatbázisunkból. Ezután a Python és a Matplotlib (a Google-nél), vagy a JavaScript-et és a D3.js-t (a Microsoftnál) használnám az adatok vizualizálására és elemzésére.

Adatok elemzése / megjelenítés a Python segítségével

Az egyik legnépszerűbb könyvtár az adatok megjelenítésére a Matplotlib.

Jó könyvtár ezzel kezdeni, mert:

  • Könnyű elkezdeni
  • Néhány más könyvtár, például a seaborn is erre épül. Tehát a Matplotlib elsajátítása segít később megismerni ezeket a könyvtárakat.

Hogyan kell megtanulnom az adatok elemzését / megjelenítését a Python segítségével?

Először meg kell tanulnia az adatelemzés és a vizualizáció alapjait. Amikor erre megfelelő forrásokat kerestem online, nem találtam. Szóval végül YouTube-videót készítettem erről a témáról:

Végül egy teljes tanfolyamot készítettem erről a témáról a Pluralsight-on, amelyet ingyen vehet igénybe, ha regisztrál a 10 napos ingyenes próbaverziójukra.

Mindkettőt ajánlanám.

Miután megtanulta az adatelemzés és a vizualizáció alapjait, hasznos lehet a statisztikák elsajátítása olyan webhelyekről is, mint a Coursera és a Khan Academy.

Szkriptelés

Mi a szkriptelés?

A szkriptelés általában olyan kisméretű programok írására utal, amelyeket egyszerű feladatok automatizálására terveztek.

Tehát hadd mondjak egy példát az itteni személyes tapasztalataimból.

Korábban Japánban egy kis startupnál dolgoztam, ahol volt egy e-mailes támogatási rendszerünk. Rendszer volt számunkra, hogy válaszoljunk az ügyfelek által e-mailben küldött kérdésekre.

Amikor ott dolgoztam, feladatom volt megszámolni az egyes kulcsszavakat tartalmazó e-mailek számát, hogy elemezhessük a kapott e-maileket.

Megtehettük volna manuálisan is, de ehelyett egy egyszerű programot / egyszerű szkriptet írtam a feladat automatizálására.

Valójában akkoriban Ruby-t használtuk erre, de a Python is jó nyelv ilyen feladatokhoz. A Python főként azért alkalmas ilyen típusú feladatokra, mert viszonylag egyszerű a szintaxisa és könnyen írható. Gyors is írni vele valami apróságot és tesztelni.

Mi a helyzet a beágyazott alkalmazásokkal?

Nem vagyok a beágyazott alkalmazások szakértője, de tudom, hogy a Python együttműködik a Rasberry Pi-vel. Úgy tűnik, ez egy népszerű alkalmazás a hardveres hobbisták körében.

Mi a helyzet a játékkal?

Használhatja a PyGame könyvtárat játékok fejlesztésére, de odakinn nem ez a legnépszerűbb játékmotor. Használhatna hobbi projekt építésére, de én személy szerint nem választanám, ha komolyan gondolja a játék fejlesztését.

Inkább azt javaslom, hogy kezdje el a Unity-t a C # -val, amely az egyik legnépszerűbb játékmotor. Ez lehetővé teszi, hogy játékot építsen számos platformra, beleértve a Mac-et, a Windows-ot, az iOS-t és az Android-ot.

Mi a helyzet az asztali alkalmazásokkal?

Készíthet egyet a Pythonnal a Tkinter használatával, de ez sem tűnik a legnépszerűbb választásnak.

Ehelyett úgy tűnik, hogy a Java, a C # és a C ++ nyelvek ennél népszerűbbek.

A közelmúltban néhány vállalat elkezdte használni a JavaScript-et asztali alkalmazások létrehozására is.

Például a Slack asztali alkalmazását valamilyen Electron néven építették fel. Ez lehetővé teszi asztali alkalmazások készítését JavaScript-szel.

Személy szerint, ha asztali alkalmazást építenék, akkor egy JavaScript opciót választanék. Lehetővé teszi a kód egy részének újbóli felhasználását egy webes verzióból, ha megvan.

Ugyanakkor nem vagyok az asztali alkalmazások szakértője is, ezért kérem, szóljon hozzászólásban, ha nem ért egyet vagy egyetért velem ebben.

Python 3 vagy Python 2?

A Python 3-at javasolnám, mivel korszerűbb és ezen a ponton népszerűbb lehetőség.

Lábjegyzet: Megjegyzés a háttérkódról a kezelőfelületi kódról (csak abban az esetben, ha nem ismeri a kifejezéseket):

Tegyük fel, hogy valami Instagramot szeretne készíteni.

Ezután létre kell hoznia a kezelői kódot minden támogatni kívánt eszköztípushoz.

Használhatja például:

  • Swift iOS rendszerhez
  • Java for Android
  • JavaScript böngészőkhöz

Minden kódkészlet minden eszközön / böngészőn fut. Ez lesz a kódkészlet, amely meghatározza, hogy milyen lesz az alkalmazás elrendezése, milyenek legyenek a gombok, amikor rájuk kattintasz, stb.

Szüksége lesz azonban a felhasználók információinak és fényképeinek tárolására. Érdemes tárolni őket a szerveren, és nem csak a felhasználói eszközökön, hogy minden felhasználó követői megtekinthessék a fotóit.

Itt jön be a háttérkód / kiszolgálóoldali kód. Írni kell néhány háttérprogram kódot, például:

  • Kövesse nyomon, ki követi
  • Tömörítse a fényképeket, hogy ne foglaljanak annyi tárhelyet
  • Ajánljon fotókat és új fiókokat minden felhasználó számára a felfedezés funkcióval

Tehát ez a különbség a háttérprogram kódja és a kezelői kód között.

Egyébként nem a Python az egyetlen jó választás a háttér- / szerveroldali kód írásához. Sok más népszerű választás létezik, köztük a Node.js, amely a JavaScript-en alapul.

Tetszett ez a cikk? Ezután a YouTube-csatornám is tetszhet.

440 000+ előfizetővel rendelkezem egy CS Dojo nevű programozási oktatással foglalkozó YouTube-csatornámmal, ahol több olyan cikket állítok elő, mint ez a cikk.

Például tetszhetnek ezek a videók:

Egyébként nagyon köszönöm, hogy elolvasta a cikkemet!