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. Czy ci się to podoba, czy nie, podczas studiów licencjackich będziesz wykonywać zadania, rozwiązywać równania lub część problemów swojego projektu za pomocą jakiegoś kodowania. A jeśli myślisz o pójściu na wyższe studia i zrobieniu obszernych badań, to „pisanie kodów” jest obowiązkową umiejętnością dla ciebie.

którego powinieneś się nauczyć-MATLAB czy Python? Nie ma jednoznacznych odpowiedzi. MATLAB istnieje od dłuższego czasu w dziedzinie obliczeń naukowych, gdzie jako rozwój pakietów obliczeń naukowych dla Pythona, np. SciPy, NumPy nie zostały przestarzałe. Tak więc MATLAB stał się dziedzicznym językiem lub narzędziem dla społeczności naukowej.
stał się językiem dziedzicznym z wielu powodów. Inżynierowie i naukowcy zawsze potrzebowali języka programowania, który bezpośrednio wyraża matematykę macierzową i macierzową, a następnie powstało MATLAB (matrix laboratory). MATLAB jest językiem zorientowanym na matematykę i matrycę, wyposażonym w różnego rodzaju specjalistyczne skrzynki narzędziowe (za zestaw narzędzi trzeba zapłacić) do kilku celów, np. modelowania danych ekonomicznych, analizy obrazów czy prowadzenia robota. Te skrzynki narzędziowe są profesjonalnie opracowane, rygorystycznie przetestowane i dobrze udokumentowane do zastosowań naukowych i inżynieryjnych. I dlatego płacisz za to cenę. Z drugiej strony, w Pythonie często musisz polegać na pakietach stworzonych przez społeczność do zastosowań naukowych i inżynierskich.

manipulacja matrycą w Pythonie vs MATLAB

MATLAB ma solidną ilość funkcji. Jednym z najlepszych produktów jest „SimuLink”, który nie ma jeszcze alternatywy. Można by pomyśleć o innym graficznym języku programowania o nazwie’ LabView ’ jako alternatywa dla niego, ale wtedy trzeba za to zapłacić wysoką cenę. I, w Pythonie, aby uzyskać to jako pakiet opracowany przez społeczność, możemy czekać co najmniej pół dekady.

ma niezwykle dobrą dokumentację do rozpoczęcia nauki i dużą społeczność naukową, która albo odpowiedziała na pytania, które będą zadawane, albo otrzyma odpowiedź od kogoś, gdy opublikujesz je w MATLAB Central. Istnieje 365,000 współpracowników, 120 odpowiedzi na pytania i 25,000 przykładowe skrypty lub kody są pobierane dziennie.

najlepszą rzeczą w MATLAB jest dostępność aplikacji opartych na Gui do wykonywania typowych zadań, co ułatwia życie początkującemu. Nie wiesz, jak dopasować krzywą za pomocą polecenia 'fminsearch’, wystarczy otworzyć zestaw narzędzi dopasowywania danych i za pomocą kilku kliknięć myszką zostanie to zrobione. Przetwarzanie równoległe jest znacznie łatwiejsze w Matlabie, jeśli ktoś ma dostęp do zestawu narzędzi do obliczeń równoległych. Posiada skrzynki narzędzi do biologii obliczeniowej, finansów obliczeniowych, systemów sterowania, nauki o danych, przetwarzania obrazu i wizji komputerowej, uczenia maszynowego, modelowania fizycznego i symulacji, robotyki, przetwarzania sygnałów i komunikacji oraz IOT. Tylko wady, które znalazłem, trzeba za to zapłacić i do pewnego stopnia wymaga trochę dodatkowej pamięci RAM w urządzeniu obliczeniowym.

z drugiej strony, nazywanie Pythona alternatywą dla MATLAB jest technicznie niepoprawne, jest to raczej język programowania ogólnego przeznaczenia, co oznacza, że można tworzyć pełnoprawne Aplikacje lub inne narzędzia programowe w Pythonie. Możliwe jest tworzenie aplikacji przy użyciu dowolnej z głównych bibliotek GUI (np. Qt), korzystanie z OpenGL, napęd portu USB, itp.

Python i jego biblioteki towarzyszące stają się z dnia na dzień coraz bardziej wyrafinowane. W przypadku dużych problemów Python jest dużo bardziej wyrazisty i czytelny w porównaniu do skryptów MATLAB. Programy Pythona mają strukturę poprzez wcięcia, tzn. bloki kodu są definiowane przez ich wcięcia, co sprawia, że program jest łatwiejszy do naśladowania.

wcięcia w Pythonie

będąc wolnym, wieloplatformowym, uniwersalnym i wysokopoziomowym językiem programowania, Wiele osób przyjmuje teraz Pythona. IDE takie jak pycharm, ipython notebook, Jupyter notebook i dystrybucje takie jak anaconda sprawiły, że python jest znacznie bardziej użyteczny dla badaczy. W wyniku tej popularności, wiele pakietów naukowych Pythona stało się dostępnych z obszerną dokumentacją do wizualizacji danych, uczenia maszynowego, przetwarzania języka naturalnego, złożonej analizy danych i innych. Na przykład, scikit-learn zawiera wstępne metody „uczenia maszynowego” z bardzo dobrą dokumentacją i samouczkami.

tutaj zebrałem listę popularnych bibliotek i narzędzi naukowych Pythona:

scipy: ta Biblioteka jest używana przez naukowców, analityków i inżynierów zajmujących się komputerami naukowymi i technicznymi. Zawiera moduły do optymalizacji, algebry liniowej, integracji, interpolacji, funkcji specjalnych, FFT, przetwarzania sygnałów i obrazów, rozwiązywania ody i innych zadań wspólnych w nauce i inżynierii.

NumPy: Jest to podstawowy pakiet dla obliczeń naukowych z Pythonem, dodając wsparcie dla dużych, wielowymiarowych tablic i macierzy, wraz z dużą biblioteką wysokopoziomowych funkcji matematycznych do działania na tych tablicach.

Pandy: pandy to biblioteka do manipulacji i analizy danych. Biblioteka udostępnia struktury danych i operacje do manipulowania tabelami numerycznymi i szeregami czasowymi.

SymPy: SymPy jest biblioteką do obliczeń symbolicznych i zawiera funkcje od podstawowej arytmetyki symbolicznej do rachunku różniczkowego, algebry, matematyki dyskretnej i fizyki kwantowej. Zapewnia możliwości algebry komputerowej albo jako samodzielna aplikacja, jako biblioteka dla innych aplikacji, lub żyć w Internecie.

Matplotlib: Matplotlib jest biblioteką wykresów 2D w języku python, która tworzy dane o jakości publikacji w różnych formatach i środowiskach interaktywnych na różnych platformach. Matplotlib umożliwia generowanie wykresów, histogramów, widm mocy, wykresów słupkowych, Wykresów błędów, Wykresów rozproszonych i innych.

scikit-learn: scikit-learn jest biblioteką uczenia maszynowego. Zawiera różne algorytmy klasyfikacji, regresji i klastrowania, w tym maszyny wektorowe wsparcia, lasy losowe, zwiększenie gradientu, k-means I DBSCAN, i jest zaprojektowany do współpracy z numerycznymi i bibliotekami naukowymi Python NumPy i SciPy.

scikit-image: scikit-image jest biblioteką przetwarzania obrazów. Obejmuje algorytmy segmentacji, transformacji geometrycznych, manipulacji przestrzenią kolorów, analizy, filtrowania, morfologii, wykrywania funkcji i innych.

Veusz: Veusz jest naukowym pakietem do tworzenia wykresów i wykresów zaprojektowanym do tworzenia wykresów o jakości publikacji w popularnych formatach wektorowych, w tym PDF, PostScript i SVG.

Astropy: The Astropy Project to zbiór pakietów przeznaczonych do wykorzystania w astronomii. Pakiet core astropy zawiera funkcjonalność skierowaną do zawodowych astronomów i astrofizyków, ale może być przydatna dla każdego, kto opracowuje oprogramowanie astronomiczne.

Psychopia: Psychopia jest pakietem do generowania eksperymentów dla neuronauki i Psychologii Eksperymentalnej. Psychopia ma na celu umożliwienie prezentacji bodźców i zbierania danych dla szerokiego zakresu eksperymentów neuronaukowych, psychologicznych i psychofizycznych.

Biopython: Biopython jest zbiorem niekomercyjnych narzędzi Pythona do biologii obliczeniowej i bioinformatyki. Zawiera klasy do reprezentowania sekwencji biologicznych i sekwencji adnotacji, i jest w stanie czytać i pisać do różnych formatów plików.

jest tam tyle pakietów, a najlepsze jest to, że są one darmowe tzn. koszt obliczeń naukowych i numerycznych w Pythonie wynosi zero.

Tak więc, z perspektywy początkującego, nie ma jednoznacznej odpowiedzi na pytanie: „którego z nich powinienem użyć do obliczeń naukowych?”Chciałbym odpowiedzieć na to pytanie w inny sposób. Używanie Pythona oznacza łatwiejszą współpracę z osobami, które nie mają dostępu do MATLAB. Albo, być może, użyjesz Matlaba, ponieważ w Pythonie nie ma alternatywnych pakietów, które służyłyby tak najlepiej jak w Matlabie.

Polub nas i śledź na Facebooku:https://www.facebook.com/gradbunker

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.