+420 773 087 597 (pracovní dny, 9-17 hod.) info@engeto.com
Hlavní stránka / Blog / Python knihovny pro každého

Python knihovny pro každého

Autor: Silvia Mišáková  |  Kategorie: Programování

python knihovny

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.

pandas 1

Zdroj: Pandas

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í.

logo pandas 1

Zdroj: Pandas

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.

delorean

Zdroj: Delorean

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.

bokeh

Zdroj: Bokeh

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.

gui

Takto může vypadat výsledek jednoduššího kódu.

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.

requests

Zdroj: Requests

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.

textblob

Zdroj: TextBlob

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.

tensorflow

Zdroj: TensorFlow

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.

pytest

Zdroj: Kloudless

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ě.

numpy

Zdroj: Numpy

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!

Silvia Mišáková

Silvia Mišáková

Silvia je studentkou FIT VUT, kde studuje program Informační technologie a zajímá se o oblast bioinformatiky. Zde se setkala s velkým množstvím programovacích jazyků, ale nejvíc jí učaroval Python, který se snaží propojovat s JavaScriptem.

Přidej se k 8 500+ odběratelům

Tvůj e-mail za zprávu o nových článcích. Pojď do toho!

Novinky

Zajímají tě novinky, blogové články a další?

Zanech nám tvůj e-mail a my ti dáme vědět!

Fakturační údaje

ENGETO s.r.o.

Cyrilská 508/7

602 00, Brno

IČ: 04671317

DIČ: CZ04671317

Tel.: +420 773 087 597

 

CodeBrew Hackathon

Jsme hrdým organizátorem největšího hackathonu na Moravě!

Přidej se i ty a začni budovat budoucnost IT.

Společnost ENGETO s.r.o. byla podpořená agenturou CzechInvest v rámci projektu Podpora start-upů, klíčové aktivity CzechStarter, realizované z programu Marketing, prioritní osy č. 2 „Rozvoj podnikání a konkurenceschopnosti malých a středních podniků“ v rámci Operačního programu Podnikání a inovace pro konkurenceschopnost.