Python knihovny pro každého
Ať už jsi ostřílený Python matador nebo teprve nakukuješ do jeho zákoutí, tady najdeš tipy, které se ti budou hodit.
Připravili jsme přehled těch nejzajímavějších a nejužitečnějších knihoven pro řešení většiny běžných problémů. Ať už jsi ostřílený Python matador nebo teprve nakukuješ do jeho zákoutí, tady najdeš tipy, které se ti budou hodit.
V článku Programuju #2 jsme porovnali Python s jinými jazyky. Důvody, proč se máš naučit právě Python, jsme shrnuli v Programuju #3. Teď ti ukážeme, jak si programování v tomto všestranném jazyku zjednodušit a zpříjemnit. Co všechno vyřešíš pomocí knihoven?
Knihovny
Při programování ti knihovny dokážou hodně ulehčit život. Je to v podstatě soubor funkcí, procedur, tříd, objektů, a dokonce i konstant, které se naprogramují jen jednou a můžou se použít ve více na sobě nezávislých programech.
To v praxi znamená, že pokud existuje knihovna, která se věnuje tvému problému, nemusíš řešení vymýšlet a programovat úplně od nuly. Jednoduše tu knihovnu použiješ. Popis využití komponentů z konkrétní knihovny najdeš nejčastěji v dokumentaci nebo API (aplikační rozhraní). V nich taky objevíš jednotlivé funkce – na co jsou dobré, co dělají, jaké mají vstupní parametry a co je jejich výstupem. V tomto článku najdeš přehled nejčastěji používaných knihoven pro různé oblasti programování v Pythonu.
Analýza webových stránek
Ve světě internetu obvykle potřebuješ dostat nějaká data z webových stránek a dál je analyzovat. Pro tyto účely můžeš použít API konkrétních stránek. Když však API není dostupné (a to se stává dost často), prostě použij BeautifulSoup.
Tahle knihovna dokáže z HTML kódu vytvořit přijatelnější strukturu, se kterou můžeš dál pracovat. Naučíš se ji používat velmi rychle, protože má opravdu dobrou dokumentaci. A když s něčím potřebuješ poradit, existuje komunita programátorů, kteří ti rádi pomůžou.
Data a databáze
Data jsou všude kolem nás. Ukládají se do databází, kde s nimi následně pracuješ. V Pythonu pro tyto účely vznikla knihovna SQLAlchemy, která zahrnuje práci s obrovským množstvím různých typů databází a možností rozložení. Díky SQLAlchemy si taky můžeš vytvořit úplně vlastní databázové schémata nebo objekty. Je intuitivní a podporuje téměř všechny moderní platformy, proto se hodí pro zkušené programátory i začátečníky.
Pro práci s daty je hodně užitečná i knihovna Pandas, kterou využije snad každý. Je podobná SQL a nabízí spoustu datových struktur, které se dají použít na manipulaci a analýzu téměř jakéhokoliv typu dat nebo množin údajů. Její zajímavostí je, že dokáže pracovat s chybějícími údaji nebo daty. Není však moc vhodná pro pokročilé statistické modelování.
Datum a čas
I úkoly zahrnující datum a čas jsou poměrně často řešeným problémem. Pro práci s těmito údaji byly vytvořeny knihovny Arrow, Pendulum a Delorean. Jejích použití ti ušetří skutečně spoustu času i řádků kódu. Funkce z těchto knihoven dokážou informace nejen generovat, abstrahovat, spravovat, upravovat a formátovat, ale zvládnou taky tvořit vlastní časové rámce.
Grafy a vizualizace dat
Pro tvorbu a modifikaci grafů, histogramů, diagramů a vizualizačních tabulek se často používá Matplotlib. Výstupy z této knihovny využiješ na různých interaktivních platformách a jsou standardem pro publikace.
Na studium a diagnostiku grafů použij knihovnu NetworkX, která je velice dobře algoritmicky pokrytá. Existuje k ní přehledná dokumentace, takže se při jejím používání určitě neztratíš. Jednou menší nevýhodou je, že poskytuje opravdu jen ty nejzákladnější vizualizace.
Pro vizualizaci dat – interaktivní grafy, řídící panely, datové aplikace a složené statistické scénáře – můžeš použít Bokeh. Tato knihovna pro vizualizaci využívá i jiné jazyky (JavaScript a HTML), proto se výstup dá snadno vykreslit i na různých serverech a HTML stránkách.
GUI
Jestli s tvorbou grafického uživatelského rozhraní teprve začínáš, doporučujeme TkInter. Je pravda, že aplikace vytvořené touhle knihovnou vypadají možná trochu zastarale, ale přesto tato knihovna obsahuje všechny základní widgety. Najdeš v ní třeba grafické prvky, které se zobrazují na obrazovce a mají předvídatelné chování – například tlačítko potvrzení. Nespornou výhodou je, že se velice snadno a intuitivně používá a díky ní se často obejdeš i bez GUI editoru.
Pokud se ti nechce do ručního vytváření formulářů, můžeš použít knihovnu wxPython. Ta podporuje základní zobrazení HTML a všechny operační systémy. Pomocí této knihovny tak můžeš vytvářet i multiplatformní aplikace.
Knihovna PyQT se hodí pro náročnější programování. Zajišťuje rozhraní mezi Pythonem a aplikačním rámcem Qt. Hodí se pro tvorbu komplexních vícerozměrných GUI a umožňuje i práci s relačními databázemi, soubory XML nebo grafickým formátem SVG.
HTTP
Knihovna Requests se stará o to, aby byly HTTP požadavky responzivnější a uživatelsky přijatelnější. Díky ní je kontrola, přizpůsobení, autorizace a konfigurace HTTP požadavků velmi jednoduchá. A umožňuje i nahrávání více souborů. Pokud začínáš, tak je to pro tebe naprosto ideální volba, protože nabízí snadné použití nejběžnějších metod pro HTTP protokol.
Obrázky
Pillow je knihovna vhodná pro práci s rastrovými obrázky téměř jakéhokoliv formátu. S její pomocí můžeš obrázky nejen otevírat a ukládat, ale i vytvářet jejích miniatury. Díky Pillow taky můžeš na obrázky aplikovat různé filtry, kreslit do nich základní geometrické tvary nebo vkládat text.
Mezi jednu z nejsložitějších knihoven, alespoň co se týče práce s obrázky, patří multiplatformní OpenCV. Složitá je hlavně proto, že k ní neexistuje žádná náležitá dokumentace. I tak se často používá pro počítačové vidění a zpracování obrazu v reálném čase.
Mahotas je rychlá a flexibilní knihovna známá jako knihovna počítačového vidění a zpracování obrazu. Za svou rychlost vděčí hlavně algoritmům, které jsou implementovány v jazyku C++. Má dobře organizovaný kód a nabízí obvyklé funkce pro práci s obrázky, například výpočty konvexních bodů, konvoluce nebo prahování.
Práce se slovy, znaky, dokumenty
Pro jednoduché vyhledávání a nahrazování slov v dokumentech použij efektivní knihovnu FlashText. Sama dokáže identifikovat klíčová slova a poskytuje i různé možnosti pro manipulaci s řetězci. Nevýhodou je, že nepodporuje speciální znaky jako například *, (, – nebo +.
Pro zpracování textových údajů však existuje ještě jednodušší knihovna – TextBlob. Její API je oblíbené u začátečníků i profesionálů. Obsahuje funkce, které slouží pro jednoduché rozdělení odseků na více slov nebo vět. Také nabízí počítadlo slov nebo frází, konverzi malých písmen na velké a naopak, opravu pravopisu nebo překlad.
Strojové učení
Strojové učení je teď hodně v kurzu. Pokud s neuronovými a konvolučními sítěmi teprve začínáš, je pro tebe ideální knihovna Keras. Nabízí různé implementace z bloků, které tvoří neuronové sítě (funkce, vrstvy, optimalizátory) a nástroje umožňující snadnou práci s obrázky, texty, kompilaci modelů nebo zpracováním souborů.
Taky knihovna PyBrain ti může být užitečná. Nabízí flexibilní, výkonné a lehce použitelné algoritmy pro řešení úloh z oblasti strojového učení (zejména z reálného života) a předdefinované prostředí pro porovnání takových algoritmů. Funkce této knihovny navíc umí pracovat s velkým množstvím dimenzí.
TensorFlow umožňuje pomocí svého API jednoduše a rychle vytvářet modely strojového učení a manipulovat s nimi. Taky představuje řešení téměř všech problémů spojených se strojovým učením. Pomocí této knihovny se dají snadno vytvářet aplikace využívající Machine Learning.
Pro vědecké a technické výpočty z této oblasti se hodí hlavně knihovna Scipy. Nabízí například funkce pro výpočet Fourierovy transformace nebo binomického rozdělení.
Snadno čitelnou dokumentaci má Scikit Learn. Zaměřuje se hlavně na prediktivní analýzu údajů. Funkce z ní ti pomůžou s klasifikací, regresí, shlukováním, redukcí dimenzí, výběrem modelů a předzpracováním dat.
Testování
Spousta firem dneska hledá testery, a přesně na to myslí i Python. Knihovna PyTest poskytuje různé moduly, které testování výrazně ulehčuje, a je tak vhodná i pro začátečníky. Tato knihovna zjednodušuje nejen psaní malých testů, ale slouží i pro komplexní testování aplikací a knihoven. Nespornou výhodou je, že ti poskytuje podrobné informace o důvodech selhání testovaného kódu.
Videa
MoviePy ti nabízí řadu základních funkcí pro import, úpravu a export videosouborů. Není však vhodná na pokročilejší úpravy videí. Pomocí této knihovny můžeš do videa například vkládat titulky a různé texty, otáčet obraz o 90 stupňů, stříhat, dokonce i řetězit videa za sebou nebo používat různé efekty. Navíc dokáže pracovat s většinou existujících video formátů.
Zpracování polí
Pro zpracování a správu polí a matic je nejpopulárnější knihovna Numpy, která je opravdu rychlá a efektivní. Navíc se využívá i ve strojovém učení. Zakládá se na matematických implementacích vhodných pro zpracování obrovského množství dat. Jednoduše se integruje i s jinými jazyky, například C a C++. Některé funkcionality jsou srovnatelné se známým Matlabem. Tato knihovna má spoustu příznivců, takže když budeš potřebovat poradit, stačí se ozvat v nějaké programátorské komunitě.
Python má mraky knihoven a popsat je všechny na jednom místě je pomalu nadlidský úkol. Možná by to zvládl nějaký jednoduchý program napsaný třeba v Pythonu, co myslíš? Tak se do toho pusť a nauč se programovat na ENGETO Online Portálu!