![image](https://habrastorage.org/getpro/habr/post_images/902/00c/4d9/90200c4d99c410e72191520381c57bad.png)
Python — стандартные библиотеки, сейчас используется Python 2.6.5
Spyder (Scientific PYthon Development EnviRonment) — IDE для интерактивных вычислений и визуализации данных, документация
formlayout — создание форм диалогов/виджетов для редактирования каких-то вводимых параметров без написания GUI-кода. Например:
Copy Source | Copy HTML<br/>from formlayout import fedit<br/> <br/>datalist = [('Name', 'Paul'),<br/> ('Age', 30),<br/> ('Sex', [ 0, 'Male', 'Female']),<br/> ('Size', 12.1),<br/> ('Eyes', 'green'),<br/> ('Married', True),<br/> ]<br/> <br/>print "result:", fedit(datalist, title="Describe yourself",<br/> comment="This is just an <b>example</b>.") <br/>
![](https://habrastorage.org/storage/8d2c102a/16ae3b08/038d8a5c/21d59fea.png)
И видим действие кода с fedit():
result: [u'Paul', 30, 'Male', 12.1, u'#008000', True]
PyQwt — привязка Python к библиотеке Qwt для построения двумерной графики на Qt, примеры
wxPython — альтернативная GUI библиотека. Хотя очевидно, что здесь всюду продвигается PyQt, она нужна для популярного набора программ ETS, а также отладчика winpdb
NumPy — популярный модуль для высокоэффективной работы с многомерными массивами (ядро модуля SciPy), краткое введение в NumPy
SciPy — содержит модули для математической оптимизации, интегрирования, специальных функций, обработки сигналов, обработки изображений, генетических алгоритмов, решения обыкновенных дифференциальных уравнений и многих других задач
numexpr — быстрое вычисление выражений для элементов массивов с помощью векторной виртуальной машины. Например:
Copy Source | Copy HTML<br/>>>> import numpy as np<br/>>>> import numexpr as ne<br/>>>> a = np.arange(10)<br/>>>> a<br/>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])<br/>>>> b = np.arange( 0, 20, 2)<br/>>>> b<br/>array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])<br/>>>> c = ne.evaluate("2*a+3*b")<br/>>>> c<br/>array([ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72]) <br/>
guidata — автоматическое создание GUI для удобного ввода данных и их показа, простейший из примеров:
Copy Source | Copy HTML<br/>import guidata<br/>guidata.qapplication()<br/> <br/>import guidata.dataset.datatypes as dt<br/>import guidata.dataset.dataitems as di<br/> <br/>class Processing(dt.DataSet):<br/> a = di.FloatItem("Parameter #1", default=2.3)<br/> b = di.IntItem("Parameter #2", min= 0, max=10, default=5)<br/> type = di.ChoiceItem("Processing algorithm",<br/> ("type 1", "type 2", "type 3"))<br/> <br/>param = Processing()<br/>param.edit() <br/>
![](https://habrastorage.org/storage/afb33195/18a94cdd/b82debaf/a1ac9490.png)
guiqwt — инструменты быстрого создания GUI, более объемная реализация идей предыдущего модуля, страница с примерами
Matplotlib — графическая 2D- и псевдо 3D-библиотека, имеющая во многих случаях синтаксис близкий к MATLAB, что позволяет опытным пользователям последнего быстро переучиваться; у Matplotlib имеется обширная галерея примеров получаемых изображений с сопутствующим кодом, что хорошо помогает войти в курс дела, также я писал о Matplotlib в 9 и 10 уроках курса на Викиверситете
gnuplot — еще один распространенный пакет для построения кривых и поверхностей
PIL (Python Imaging Library) — работа с растровой графикой различных форматов, чтение и запись, конвертирование, редактирование и так далее
IPython — замена стандартного Python shell, обладающая расширенными возможностями, об использовании IPython есть хороший рассказ на хабре
SetupTools — библиотека, позволяющая автоматически загружать, собирать, устанавливать и управлять пакетами языка Python, находящимися в репозитории модулей PyPI (Python Package Index) подобно пакетным менеджерам
ETS (Enthought Tool Suite) — большой самостоятельный пакет программ, в котором наиболее интересным, наверное, является средство 3D-визуализации Myavi
VTK — программное обеспечение для визуализации, 3D графики, объемной прорисовки и обработки изображений
ITK — программное обеспечение для обработки изображений из области медицины
mx — eGenix.com mx Distribution, содержит модули для упрощения обработки данных различных типов: mxDateTime (преобразование и парсинг различных форматов дат и времени), mxTextTools (парсинг текста и поисковые алгоритмы), mxProxy, mxBeeBase (управление небольшими базы данных), mxURL, mxUID, mxStack, mxQueue и mxTools
pydicom — обработка медицинских изображений стандарта DICOM
PyOpenGL — работа с OpenGL, известного интерфейса для написания приложений, использующих двумерную и трёхмерную компьютерную графику
VPython — создание трехмерных интерактивных моделей физических систем
SymPy — математическая библиотека для символьных вычислений, о ней я когда-то сделал урок на Викиверситете
cvxport — библиотека выпуклой оптимизации
PyWavelets — модуль вейвлет-преобразований
scikits.timeseries — набор инструментов для анализа временных рядов
pyopencv — работа с библиотекой алгоритмов компьютерного зрения OpenCV
NetworkX — создание, манипуляция и исследования структур, динамики и функций сложных сетей, графов, например:
Copy Source | Copy HTML<br/>import networkx as nx<br/>import matplotlib.pyplot as plt<br/> <br/>G=nx.random_geometric_graph(200, 0.125)<br/>pos=G.pos # position is stored as member data for random_geometric_graph<br/> <br/># find node near center (0.5,0.5)<br/>dmin=1<br/>ncenter= 0<br/>for n in pos:<br/> x,y=pos[n]<br/> d=(x- 0.5)**2+(y- 0.5)**2<br/> if d<dmin:<br/> ncenter=n<br/> dmin=d<br/> <br/># color by path length from node near center<br/>p=nx.single_source_shortest_path_length(G,ncenter)<br/> <br/>plt.figure(figsize=(8,8))<br/>nx.draw_networkx_edges(G,pos,nodelist=[ncenter],alpha= 0.4)<br/>nx.draw_networkx_nodes(G,pos,nodelist=p.keys(),<br/> node_size=80,<br/> node_color=p.values(),<br/> cmap=plt.cm.Blues)<br/> <br/>plt.xlim(- 0.05,1.05)<br/>plt.ylim(- 0.05,1.05)<br/>plt.axis('off')<br/>plt.show() <br/>
![](https://habrastorage.org/storage/576a4229/165319b7/90f00fea/5ae0a5d6.png)
MDP — модульный набор инструментальных средств для обработки данных — набор управляемых и самообучающихся алгоритмов
PyTables — пакет основан на HDF5 библиотеке управления большими иерархическими структурами данных
vitables — графический инструмент для просмотра и редактирования файлов в HDF5 и PyTables форматах
h5py — интерфейс для HDF5 файлов (в отличие от PyTables, h5py обеспечивает прямой доступ к полной библиотеке HDF5 С)
pyhdf — интерфейс для файлов HDF4
netcdf4 — работа с netCDF4 (Network Common Data Form), набором библиотек программного обеспечения и машинно-независимого формата данных, которые поддерживают создание, доступ и обмен ориентированных на массивы научных данных
GDAL (Geospatial Data Abstraction Library) — работа с данными о геопространстве
PP (Parallel Python) — параллельное выполнение кода Python на системах с несколькими процессорами или ядрами, примеры
SendKeys — Python модуль для Windows, который может отправить одно или несколько нажатий клавиш или комбинации клавиш в активное окно. Можно даже забыть на время о таких целях и сделать шалость, например:
Copy Source | Copy HTML<br/>import SendKeys<br/>SendKeys.SendKeys("""<br/> {LWIN}<br/> {PAUSE .25}<br/> {UP 3}<br/> {ENTER}<br/> {PAUSE 1}<br/> notepad{ENTER}<br/> {PAUSE 2}<br/> Hello{SPACE}World!<br/> {PAUSE 3}<br/> %{F4}<br/> {PAUSE 2}<br/> {RIGHT}<br/> {PAUSE 1}<br/> {ENTER}<br/> """) <br/>
Что здесь происходит? В точности то, что делал бы я в отсутствии мыши, для того, чтобы получить тот же результат, который получится. Я нажал бы левую клавишу windows {LWIN}, то есть зашел в меню «Пуск» своего Windows XP, потом три раза клавишу «вверх» {UP 3}, так я перешел к «Выполнить...», нажал бы клавишу {ENTER}, набрал notepad и запустил так блокнот, написал в нем типичное HelloWorld, закрыл с помощью alt-f4, что записывается как %{F4}, появился типичный диалог о сохранении данных «Да Нет Отмена», нажал клавишу {RIGHT}, чтобы выбрать «Нет» и {ENTER}. Паузы нужны, чтобы успели открыться необходимые программы и ввестись соответствующие символы.
Одновременно с исполнением этого кода не стоит
pywinauto — набор модулей для автоматизации Microsoft Windows GUI (действия мыши и клавиатуры)
pyvisa — контроль всех видов измерительных устройств с помощью различных шин (GPIB, RS232, USB)
PyParallel — библиотека доступа к параллельному порту
PySerial — библиотека доступа к последовательному порту
Cython — язык, основанный на Python, позволяющий более плотно использовать скоростные возможности С
psyco — модуль, позволяющий повысить скорость выполнения кода на Python, причем во многих случаях достаточно лишь перед основным кодом добавить всего две строчки (или чуть больше, если обернуть их в try-except ImportError):
Copy Source | Copy HTML<br/>import psyco<br/>psyco.full() <br/>
py2exe — инструмент, который преобразует Python сценарии в автономные исполняемые файлы Windows, о нем немного написано на хабре
Sphinx — инструмент для генерации документации, использующий в качестве языка разметки reStructuredText; с помощью Sphinx оформлена и документация самого Python, и самого Sphinx, и многих других библиотек, входящих в Python(x, y)
docutils — текстовый процессор перевода документации из простого текста в полезные форматы, такие как HTML, XML или LaTeX (включая reStructuredText)
pygments — подсветка исходного кода, понимает большинство используемых языков, умеет выдавать на выходе html, картинки, LaTeX и так далее
ReportLab — создание pdf-документов
rst2pdf — инструмент для преобразования reStructuredText в PDF с использованием ReportLab
simplejson — простой, быстрый JSON (JavaScript Object Notation) кодер / декодер
xlrd — извлечение данных из файлов Microsoft Excel, статья на хабре
xlwt — создание файлов электронных таблиц, совместимых с Microsoft Excel, OpenOffice.org Calc и Gnumeric
pylint — анализ кода на поиск ошибок и плохих мест, достаточно запустить из командной строки
pylint example.py
и pylint выведет большую сводку того, что думает о вашем коде, примерwinpdb — интерактивный отладчик программ