MATLAB vs Python: for Scientific Computing – A Beginners Guide

Faisal Riyad
Faisal Riyad

Follow

Apr 20, 2018 · 6 min read

Now a days „the ability to write codes“ has become an essential skill for the students from the technical discipline. Buď se vám to líbí, nebo ne, během své undergrad studie budete dělat úkoly, řešit rovnice nebo část problémů vašeho projektu s nějaký druh kódování. A pokud si myslíte, že jít na vyšší studia a dělat nějaký rozsáhlý výzkum, pak „psaní kódů“ je třeba znát dovednost pro vás.

který z nich byste se měli naučit-MATLAB nebo Python? Neexistují žádné definitivní odpovědi. MATLAB existuje již dlouhou dobu pro vědecké výpočty, kde jako vývoj vědeckých výpočetních balíčků pro python např. Takže MATLAB se stal starší jazyk nebo nástroj pro vědeckou komunitu.
z mnoha důvodů se stal zastaralým jazykem. Inženýři a vědci vždy potřebovali programovací jazyk, který přímo vyjadřuje matematiku matic a polí, a poté vznikl MATLAB (matrix laboratory). MATLAB je matematické a matice orientovaný jazyk, který je dodáván s různými druhy specializované toolboxy (budete muset zaplatit za toolbox) pro několik účelů, například modelování ekonomických dat, analýza obrazu nebo řízení robota. Tyto toolboxy jsou profesionálně vyvinuty, pečlivě testovány a dobře zdokumentovány pro vědecké a technické aplikace. A proto za to platíš. Na druhou stranu, v Pythonu se často musíte spoléhat na komunitní balíčky pro vědecké a technické použití.

Matrix Manipulace v Pythonu vs MATLAB

MATLAB má solidní množství funkcí. Jedním z nejlepších produktů je „SimuLink“, který zatím nemá žádnou alternativu. Možná si myslíte, že jiný grafický programovací jazyk s názvem „LabView“ je alternativou k němu, ale pak za něj musíte zaplatit vysokou cenu. A, v Pythonu, abychom to dostali jako komunitní balíček, možná budeme muset počkat nejméně půl desetiletí.

má mimořádně dobrou dokumentaci k zahájení učení a velkou vědeckou komunitu, která buď odpověděla na otázky, které budou položeny, nebo na ně někdo odpoví, když je zveřejníte v MATLAB Central. Existuje 365,000 přispěvatelé, 120 Otázky jsou zodpovězeny a 25,000 ukázkové skripty nebo kódy jsou staženy denně.

Nejlepší věc, kterou MATLAB je dostupnost GUI aplikace pro provádění běžných úkolů, které činí život začátečníka jednodušší. Vy nevíte, jak, aby se vešly křivky pomocí fminsearch‘ příkaz, stačí otevřít data fitting toolbox a s pár kliknutí myší, bude to hotové. Paralelní zpracování je v Matlabu mnohem jednodušší, pokud má někdo přístup k nástroji parallel computing toolbox. To má nástroje pro výpočetní biologii, výpočetní finance, řídicí systémy, datové vědy, zpracování obrazu a počítačového vidění, strojového učení, fyzikální modelování a simulace, robotika, zpracování signálu a komunikace a internetu VĚCÍ. Pouze nevýhody, které jsem našel, musíte za to zaplatit a do jisté míry to vyžaduje trochu další paměti RAM ve vašem výpočetním zařízení.

na druhé straně je volání Pythonu jako alternativy k MATLABu technicky nesprávné, spíše se jedná o univerzální programovací jazyk, což znamená, že v Pythonu můžete vyvíjet plnohodnotné aplikace nebo jiné softwarové nástroje. Je možné vytvářet aplikace pomocí některé z hlavních knihoven GUI (např. Qt), používat OpenGL, řídit USB port atd.

Python a jeho doprovodné knihovny se každým dnem stávají stále sofistikovanějšími. Pro velké problémy, Python je mnohem výraznější a čitelnější ve srovnání s Matlab skripty. Kódové bloky jsou definovány jejich odsazením, což usnadňuje sledování programu.

Odsazení v Pythonu

je zdarma, cross-platform, univerzální a high-level programovací jazyk, mnoho lidí jsou nyní přijímají Python. IDES jako pycharm, ipython notebook, jupyter notebook distribuce jako anaconda učinila python mnohem použitelnější pro vědce. Výsledkem této popularity, spousta Python vědecké balíčky jsou k dispozici s rozsáhlou dokumentaci pro vizualizaci dat, strojové učení, zpracování přirozeného jazyka, komplexní analýzu dat a další. Například, scikit-learn obsahuje start-of-the-art ‚Strojového Učení přístupů s velmi dobrou dokumentaci a tutoriály.

Zde jsem shromáždil seznam některých populárních Python vědecké knihovny a nástroje:

SciPy: Tato knihovna je používána vědci, analytici, inženýři dělat vědecké výpočty a technické výpočty. Obsahuje moduly pro optimalizaci, lineární algebru, integraci, interpolaci, speciální funkce, FFT, zpracování signálu a obrazu, ODE řešitele a další úkoly běžné ve vědě a inženýrství.

NumPy: To je základní balíček pro vědecké výpočty s Python, přidání podpory pro velké, multi-dimenzionálních polí a matic, spolu s velkou knihovnou vysoké úrovni matematických funkcí provozovat na těchto polích.

pandy: Pandy je Knihovna pro manipulaci a analýzu dat. Knihovna poskytuje datové struktury a operace pro manipulaci s číselnými tabulkami a časovými řadami.

SymPy: SymPy je knihovna pro symbolické výpočty a obsahuje funkce od základní symbolické aritmetický do počtu, algebry, diskrétní matematiky a kvantové fyziky. Poskytuje funkce počítačové algebry buď jako samostatná aplikace, jako Knihovna pro jiné aplikace, nebo žít na webu.

Matplotlib: Matplotlib je python 2D vykreslování knihovna, která produkuje publikace kvalitu postavy v různých tištěné formáty a interaktivní prostředí napříč platformami. Matplotlib umožňuje vytvářet grafy, histogramy, power spectra, sloupcové grafy, errorcharts, scatterplots, a další.

scikit-learn: scikit-learn je machine learning library. To nabízí různé klasifikace, regrese a clustering algoritmy včetně podpůrné vektorové stroje, náhodné lesy, gradient boosting, k-means a DBSCAN, a je navržen tak, aby spolupracovat s Python numerické a vědecké knihovny NumPy a SciPy.

scikit-image: scikit-image je Knihovna pro zpracování obrazu. Zahrnuje algoritmy pro segmentaci, geometrické transformace, manipulaci s barevným prostorem, analýzu, filtrování, morfologii, detekci funkcí a další.

Veusz: Veusz je vědecký Vykreslování a grafů balíček navržen tak, aby publikace kvalitní grafy v populárních vektorových formátů, včetně PDF, PostScript a SVG.

Astropy: Projekt Astropy je sbírka balíčků určených pro použití v astronomii. Jádro astropy balíček obsahuje funkce zaměřené na profesionální astronomové a astrofyzici, ale může být užitečné pro každého, kdo vyvíjí software astronomie.

PsychoPy: PsychoPy je balíček pro generování experimentů pro neurovědy a experimentální psychologii. PsychoPy je navržen tak, aby umožňoval prezentaci podnětů a sběr dat pro širokou škálu experimentů neurovědy, psychologie a psychofyziky.

Biopython: Biopython je sbírka nekomerčních nástrojů Pythonu pro výpočetní biologii a bioinformatiku. Obsahuje třídy reprezentovat biologické sekvence a sekvenční anotace, a je schopen číst a zapisovat do různých formátů souborů.

existuje tolik balíčků a nejlepší je, že jsou zdarma, tj. vědecké a numerické výpočetní náklady s Pythonem jsou nulové.

takže z pohledu začátečníka neexistuje jednoznačná odpověď na otázku: „Který z nich bych měl použít pro vědecké výpočty?“Chtěl bych odpovědět na tuto otázku jiným způsobem. Používání Pythonu znamená, že můžete snadněji spolupracovat s lidmi, kteří nemají přístup k MATLABu. Nebo možná použijete MATLAB, protože v Pythonu nejsou žádné alternativní balíčky, které by sloužily stejně nejlépe jako v Matlabu.

prosím, Líbí se a sledujte nás na Facebook: https://www.facebook.com/gradbunker

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.