Dystrybucje i środowiska Pythona do obliczeń naukowych

Z góry przepraszam, jeśli to pytanie jest zbyt szerokie. Pochodzę ze świata MATLAB i mam stosunkowo niewielkie doświadczenie z Pythonem.

Po spędzeniu trochę czasu na czytaniu o kilku środowiskach i dystrybucjach opartych na Pythonie dla obliczeń naukowych, czuję, że nadal nie do końca rozumiem krajobraz rozwiązań lub dokładne relacje między niektórymi godnymi uwagi pakietami, w tym:

Dokładniej:

  • czy któryś z powyższych pakietów zapewnia podobną funkcjonalność? Czy się uzupełniają?
  • Czy instalacja któregokolwiek z nich obejmuje lub wymaga instalacji któregokolwiek z inni? Jeśli tak, które z nich obejmują lub wymagają które?

Mniej ważne, czy są jakieś inne pakiety podobne do tych powyżej, które zapewnić podobną funkcjonalność?

Z góry dzięki

Author: Stat-R, 2011-07-16

3 answers

Obliczenia naukowe z Pythonem przybierają zwykły język waniliowy i wkręcają się w kilka modułów, z których każdy implementuje jakiś aspekt funkcjonalności MATLAB. Jako takie doświadczenie z programowaniem naukowym Pythona jest trochę niespójne c. F. MATLAB. Jednak Python jako język jest znacznie czystszy. Tak to wygląda.

Podstawowe moduły niezbędne do obliczeń naukowych w Pythonie to Numpy, Matplotlib, SciPy a jeśli robisz kreślenie 3D, to Mayavi/VTK. Wszystkie te moduły zależą na Numpy.

Numpy implementuje nowy typ tablicy, który zachowuje się podobnie do macierzy MATLAB (tj. szybkie obliczenia wektorowe). Definiuje również obciążenie funkcji do tych obliczeń, które są zwykle nazywane tak samo jak podobne funkcje w MATLAB.

Matplotlib pozwala na tworzenie wykresów 2d za pomocą bardzo podobnych poleceń do MATLAB. Matplotlib definiuje również pylab, który jest modułem, który - jednym importem-przynosi większość funkcji Numpy i Matplotlib do globalnej przestrzeni nazw. Jest to przydatne do szybkiego / interaktywnego skryptowania, w którym nie chcesz wpisywać wielu prefiksów przestrzeni nazw.

SciPy to zbiór modułów Pythona ułożonych pod parasolem SciPy, które są przydatne dla naukowców. Procedury montażu są dostarczane w modułach SciPy. Numpy jest częścią Scipy.

Spyder jest desktopowym IDE (opartym na QT), które luźno próbuje emulować MATLAB IDE. Jest częścią Python-XY Dystrybucja.

IPython zapewnia ulepszoną interaktywną powłokę Pythona, która jest przydatna do testowania kodu i uruchamiania skryptów oraz interakcji z wynikami. Może być teraz serwowany zarówno do interfejsu internetowego, jak i tradycyjnej konsoli. Jest również osadzony w Spyder IDE.

Dystrybucje

Uruchomienie wszystkich tych modułów na komputerze może być czasochłonne, dlatego istnieje kilka dystrybucji, które je pakują (oraz wiele innych modułów) dla Ciebie.

Python-XY, WinPython, Enthought a ostatnio Anakonda są wszystkie pełne dystrybucje pakietów, które zawierają wszystkie podstawowe moduły, chociaż Enthought nie pochodzi z Spyder.

Sage jest innym środowiskiem programistycznym, które jest serwowane przez internet lub za pomocą linii poleceń, a także jest dostarczane jako pełny pakiet zawierający wiele innych modułów. Tradycyjnie pojawił się jako obraz VMWare oparty na instalacji Linux. Chociaż piszesz Pythona w środowisku Sage, to trochę różni się on od zwykłego programowania Pythona, w pewnym sensie definiuje swój własny język i metodologię opartą na Pythonie.

Jeśli używasz systemu Windows, zainstalowałbym WinPython. Instaluje wszystko, czego potrzebujesz, w tym Scipy i Spyder (który jest najlepszym zamiennikiem dla MATLAB dla Pythona IMHO), a ponieważ jest zaprojektowany jako samodzielny, nie będzie kolidować z innymi instalacjami Pythona, które możesz mieć na swoim system. Jeśli jesteś na OSX, Enthought jest chyba najlepszym sposobem-Spyder można zainstalować osobno za pomocą np. MacPorts. Dla Linuksa można zainstalować komponenty (Numpy, SciPy, Spyder, Matplotlib) oddzielnie.

Osobiście nie lubię Sage 'owego sposobu pracy z Pythonem "ukrytym pod maską", ale możesz to preferować.

 32
Author: Brendan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-17 15:29:22

Odnośnie mniej ważnej części Pytania:

  • Anakonda jest kolejną godną uwagi dystrybucją (podobną do Enthought i Sage) z Ipythonem, Spyderem... Pozwala również łatwo przełączać wersje/środowiska Pythona.
  • PyCharm jest kolejnym godnym uwagi IDE, którego zwykle używam.
 4
Author: jolvi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-05 20:09:48

Ten link może być przydatny: https://www.cfa.harvard.edu / ~ ebresser / python /

To strona astrofizyka z Harvardu. Daje punkt widzenia osoby przechodzącej z ITT-VIS IDL na Pythona, na OS-X (ale większość porad działa również na innych systemach operacyjnych).

EDIT: wygląda na to, że strona została usunięta. Alternatywnym dobrym wprowadzeniem do Pythona dla naukowca / inżyniera jest ten dokument (Duże Ostrzeżenie PDF): http://stsdas.stsci.edu/perry/pydatatut.pdf Mam nadzieję, że ten nie zostanie zdjęty!

 2
Author: PhilMacKay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 21:27:35