Язык программирования Python… Как говорит википедия

Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода

Это динамически типизированный, интерпретируемый язык, с поддержкой нескольких парадигм программирования (структурное, объектно-ориентированное, функциональное, императивное, аспектно-ориентированное)

Язык высокого уровня с высокой степенью абстракции.

Портирован на все основные типы платформ от *nix систем до windows и смартфонов.

Существует две основные ветки Python ветка 2.x и ветка 3.x. Код для версии 3.x обратно не совместим с веткой 2.x, однако и исполнение кода 2.x в среде 3.x часто будет выдавать ошибки.

Ниже приведен пример выражений в Python

>> 2+3
5
>> 2**3
8
>> print("Hello, %s!!"%("Vasya"))
Hello, Vasya!!
>> name="Vasya" 
>> print(f"Hello, {name}!!")# начиная с версии 3.6
Hello, Vasya!!

Python можно использовать как для написания программ, так и для написания shell-скриптов.

Исполняемый файл

В *nix системах для создания исполняемого файла необходимо в первой строке файла с программой написать:

#!/usr/bin/env python3

и указать атрибуты файлу

chmod u+x file.py

здесь мы разрешаем исполнение файла его создателю.

В этом блоге будет рассматриваться ветка 3.x

Какой дистрибутив ставить?

Возникает вполне резонный вопрос: где брать Python и как его ставить? Практически во всех *nix подобных операционных системах Python уже установлен с правами «суперпользователь». Это не всегда удобно. Кроме того, в некоторых операционных системах (MacOS) до сих пор используется 2-я ветка питона, в то время как на других (ArchLinux, Manjaro, etc..) предустановлена 3-я ветка. Также версии интерпретатора могут отличаться, а соответственно, возможны проблемы совместимости готовой программы.

Гораздо удобнее устанавливать отдельно Python с правами пользователя. Это можно сделать вручную, собственными силами скачивать интерпретатор, устанавливать и настраивать его, собирать все необходимые пакеты и прочее. Можно пойти другим путем и воспользоваться готовым решением:

  1. Miniconda
  2. Enthought Canopy
  3. WinPython

На мой взгляд, наиболее удобным является Miniconda, и этому способствует ряд свойств этого дистрибутива:

  • Наличие собственной системы управления пакетами
  • математические библиотеки NumPy, SciPy, etc. собраны с библиотеками Intel MKL.
  • все необходимые библиотеки и компоненты (не питоновские в том числе) устанавливаются в локальную папку, не захламляя систему.
  • можно установить несколько окружений с различными набором пакетов и версией интерпретатора

И все же как устанавливать?

Переходим на сайт Miniconda и скачиваем нужный дистрибутив (в нашем случае версия 3.6) для своей архитектуры и выполняем установку посредством запуска файла. Подробно об этом написано на странице инструкция по установке.

Установка пакетов

Установка пакетов происходит с помощью команды conda install <имя пакета>. В системе *nix это можно сделать из командной строки, в системе windows нужно запускать Anaconda Prompt - командная строка с переменными окружения.

Для своей работы я устанавливаю следующий комплект пакетов:

  1. Numpy - библиотека для работы с многомерными массивами
  2. SciPy - библиотека - надмножество NumPy, представляет набор функция для анализа (интерполяция, обработка сигналов, интегрирование и прочее..)
  3. Matplotlib - библиотека дву- и трехмерной графики
  4. Pandas - библиотеками для работы с табличными данными и рядами
  5. IPython - оболочка -интерпретатор

В случае, если для работы нужно использовать методы минимизации, в этом случае можно дополнительно установить LmFit. Это оболочка над функциями минимизации из пакета SciPy, которая облегчает работу с функциями. Добавляет ограничения на диапазон принимаемых значений искомых параметров.

Интересным является и пакет NlOpt. Здесь также реализовано множество алгоритмов глобальной и локальной минимизации/максимизации с как с вычислением градиента, так и без него. Важно! Этот пакет нужно ставить из исходников.

Пакеты для работы с научными форматами данных

Если вдруг вам в работе придется столкнуться с файлами netCDF и/или HDF5/HDF4 вы можете работать с ними с помощью следующих пакетов:

  1. netCDF4
  2. h5py
  3. pytables

Первый из них поддерживает работу с файлами netCDF версии 3 и 4, последние два ориентированы на работу с форматом hdf5.