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. Joko pidät siitä tai et, ylioppilastutkintosi aikana teet tehtäviä, ratkaiset yhtälöitä tai osan projektisi ongelmista jonkinlaisella koodauksella. Ja, jos ajattelet menossa korkeampiin opintoihin ja tehdä joitakin laajoja tutkimuksia, niin ”kirjoittaminen koodit” on oltava tietää taito sinulle.

kumpi kannattaa opetella — MATLAB vai Python? Varmoja vastauksia ei ole. MATLAB on ollut pitkään tieteellisessä tietojenkäsittelyssä, jossa Pythonin tieteellisten laskentapakettien kuten Scipyn kehittelyssä NumPy ei ole vanhentunut. MATLABISTA on siis tullut tiedeyhteisön perintökieli tai-työkalu.
siitä on tullut perintökieli monestakin syystä. Insinöörit ja tiedemiehet tarvitsivat aina ohjelmointikielen, joka ilmaisee matriisi-ja matriisimatematiikkaa suoraan, ja sitten syntyi MATLAB (matriisilaboratorio). MATLAB on matematiikkaa ja matriisi-orientoitunut kieli sisältää erilaisia erikoistuneita työkalupakkeja (sinun on maksettava toolboxista) useisiin tarkoituksiin, esim.taloudellisen tiedon mallintamiseen, kuva-analyysiin tai robotin ajamiseen. Nämä työkalulaatikot ovat ammattimaisesti kehitettyjä, tarkasti testattuja ja hyvin dokumentoituja tieteellisiin ja teknisiin sovelluksiin. Siksi siitä joutuu maksamaan. Toisaalta Pythonissa joudutaan usein turvautumaan yhteisön laatimiin paketteihin tieteellisissä ja teknisissä käyttötarkoituksissa.

Matriisimanipulaatio python vs matlab

matlabilla on kiinteä määrä funktioita. Yksi sen parhaista tuotteista on ”SimuLink”, jolla ei ole vielä vaihtoehtoa. Voisit ajatella toista graafista ohjelmointikieltä nimeltä ”LabView” vaihtoehtona sille, mutta sitten joudut maksamaan siitä kovan hinnan. Ja Pythonissa saadaksemme sen yhteisön kehittämänä pakettina, saatamme joutua odottamaan ainakin puoli vuosikymmentä.

sillä on poikkeuksellisen hyvä dokumentaatio aloittaa oppiminen, ja suuri tiedeyhteisö, joka on joko vastannut esitettäviin kysymyksiin tai saa vastauksen joltain, kun postitat ne MATLAB-keskukseen. Osallistujia on 365 000, kysymyksiin vastataan 120 ja näytekäsikirjoituksia tai-koodeja Ladataan 25 000 päivässä.

MATLABin parasta on GUI-pohjaisten sovellusten saatavuus yhteisten tehtävien suorittamiseen, mikä helpottaa aloittelijan elämää. Et tiedä, miten käyrä sovitetaan ’fminsearch’ komennolla, avaat vain tietojen sovitus työkalupakin, ja parilla hiiren napsautuksella se tehdään. Rinnakkaiskäsittely on paljon helpompaa MATLABISSA, jos jollain on pääsy rinnakkaistietokoneen työkalupakkiin. Sillä on työkalupakkeja laskennalliseen biologiaan, laskennalliseen talouteen, ohjausjärjestelmiin, datatieteeseen, kuvankäsittelyyn ja tietokonenäköön, koneoppimiseen, fyysiseen mallintamiseen ja simulointiin, robotiikkaan, signaalinkäsittelyyn ja tietoliikenteeseen sekä IOT: hen. Vain haittoja, että löysin, sinun täytyy maksaa siitä ja jossain määrin se vaatii hieman ylimääräistä muistia tietokoneen laitteeseen.

toisella puolella Pythonin kutsuminen vaihtoehtona MATLABILLE on teknisesti virheellistä, pikemminkin se on yleiskäyttöinen ohjelmointikieli, joka tarkoittaa, että Pythonissa voi kehittää täysimittaisia sovelluksia tai muita ohjelmistotyökaluja. On mahdollista luoda sovelluksia millä tahansa tärkeimmistä GUI-kirjastoista (esim.Qt), käyttää OpenGL: ää, ajaa USB-porttia jne.

Python kumppanikirjastoineen käy päivä päivältä yhä hienostuneemmaksi. Suuren mittakaavan ongelmissa Python on paljon ilmeikkäämpi ja luettavampi verrattuna MATLAB-skripteihin. Python-ohjelmat jäsentyvät sisennyksen avulla eli koodilohkot määritellään niiden sisennyksen avulla, mikä tekee ohjelmasta helpommin seurattavan.

sisennys Pythonissa

koska kyseessä on vapaa, monialustainen, yleiskäyttöinen ja korkean tason ohjelmointikieli, monet ihmiset omaksuvat nyt Pythonin. IDES kuten pycharm, ipython notebook, jupyter notebook jakelut kuten anaconda on tehnyt python paljon käyttökelpoisempi tutkijoille. Tämän suosion seurauksena on tullut saataville runsaasti Python-tiedepaketteja, joissa on laaja dokumentaatio datan visualisointiin, koneoppimiseen, luonnollisen kielen käsittelyyn, monimutkaiseen data-analyysiin ja muuhun. Esimerkiksi scikit-learn sisältää alkuun-of-the-art ’Koneoppiminen’ lähestymistapoja erittäin hyvä dokumentointi ja opetusohjelmia.

tähän olen koonnut listan muutamista suosituista python-tieteellisistä kirjastoista ja työkaluista:

scipy: tätä kirjastoa käyttävät tieteellistä ja teknistä tietojenkäsittelyä tekevät tiedemiehet, analyytikot ja insinöörit. Se sisältää moduuleja optimointiin, lineaarialgebraan, integraatioon, interpolointiin, erikoisfunktioihin, FFT: hen, signaalin ja kuvan käsittelyyn, ODE-ratkaisijoihin ja muihin tieteen ja tekniikan yleisiin tehtäviin.

NumPy: Se on perustavanlaatuinen paketti tieteellisen laskennan Python, lisäämällä tukea suuria, moniulotteisia matriiseja ja matriiseja, sekä suuri kirjasto korkean tason matemaattisia funktioita toimimaan näissä taulukoissa.

pandat: pandat on tietojen manipulointiin ja analysointiin tarkoitettu kirjasto. Kirjasto tarjoaa tietorakenteita ja operaatioita numeeristen taulukoiden ja aikasarjojen käsittelyyn.

SymPy: SymPy on symbolisen laskennan kirjasto ja sisältää ominaisuuksia, jotka vaihtelevat symbolisen aritmetiikan perusteista laskemiseen, algebraan, diskreettiin matematiikkaan ja kvanttifysiikkaan. Se tarjoaa tietokoneen algebra ominaisuuksia joko itsenäisenä sovelluksena, kirjastona muihin sovelluksiin, tai elää verkossa.

Matplotlib: Matplotlib on python 2D-piirtokirjasto, joka tuottaa julkaisujen laatulukuja erilaisissa kiintolevymuodoissa ja interaktiivisissa ympäristöissä eri alustoilla. Matplotlib voit luoda tontteja, histogrammeja, tehospektrejä, pylväskaavioita, errorcharts, scatterplots, ja paljon muuta.

scikit-learn: scikit-learn on koneoppimisen kirjasto. Siinä on erilaisia luokittelu -, regressio-ja ryhmittelyalgoritmeja, mukaan lukien tukivektorikoneet, satunnaiset metsät, gradientin lisääminen, k-means ja DBSCAN, ja se on suunniteltu toimimaan yhteistyössä Pythonin numeeristen ja tieteellisten kirjastojen NumPy ja SciPy kanssa.

skikit-image: skikit-image on kuvankäsittelykirjasto. Se sisältää algoritmeja segmentointiin, geometrisiin muunnoksiin, väriavaruuden manipulointiin, analysointiin, suodattamiseen, morfologiaan, ominaisuuksien havaitsemiseen ja muuhun.

Veusz: Veusz on tieteellinen piirto-ja graafipaketti, jonka tarkoituksena on tuottaa julkaisulaatuisia juonia suosituissa vektoriformaateissa, kuten PDF, PostScript ja SVG.

Astropy: Astropy-projekti on kokoelma tähtitieteen käyttöön suunniteltuja paketteja. Core astropy-paketti sisältää toimintoja, jotka on suunnattu ammattimaisille tähtitieteilijöille ja astrofyysikoille, mutta voi olla hyödyllinen kaikille tähtitieteen ohjelmistoja kehittäville.

Psykopia: Psykopia on neurotieteen ja kokeellisen psykologian kokeiden sukupolven paketti. Psykopian tarkoituksena on mahdollistaa ärsykkeiden esittäminen ja tiedonkeruu erilaisia neurotieteen, psykologian ja psykofysiikan kokeita varten.

Biopython: Biopython on kokoelma ei-kaupallisia Python-työkaluja laskennalliseen biologiaan ja bioinformatiikkaan. Se sisältää luokkia, jotka edustavat biologisia sekvenssejä ja sekvenssihuomautuksia, ja se pystyy lukemaan ja kirjoittamaan erilaisiin tiedostomuotoihin.

paketteja on niin paljon ympärillä, ja parasta on, että ne ovat ilmaisia eli tieteellisen ja numeerisen tietojenkäsittelyn hinta Pythonilla on nolla.

aloittelijan näkökulmasta ei siis ole varmaa vastausta kysymykseen: ”kumpaa minun pitäisi käyttää tieteelliseen laskentaan?”Haluaisin vastata tähän kysymykseen eri tavalla. Pythonin avulla voit helpommin tehdä yhteistyötä sellaisten ihmisten kanssa, joilla ei ole pääsyä MATLABIIN. Tai ehkä käytät MATLABIA, koska Pythonissa ei ole vaihtoehtoisia paketteja, jotka toimivat yhtä hyvin kuin MATLABISSA.

Tykkää Ja seuraa Facebookia: https://www.facebook.com/gradbunker

Vastaa

Sähköpostiosoitettasi ei julkaista.