Основы библиотеки NumPy для работы с массивами чисел#
Глава содержит примеры функций и возможностей массивов NumPy. NumPy - один из фундаментальных пакетов для научных расчётов на Python. Ядро NumPy написано на языке C и скомпилировано, что драматически (в десятки и сотни раз) ускоряет расчёты на Python. NumPy лежит в основе других библиотек высокого уровня для научных расчётов: SciPy (математическая статистика, дифференциальные уравнения и т.д.), Matplotlib (визуализация научных и прочих данных), Pandas (Excel в Python - всё, что необходимо для обработки таблиц данных) и т.п.
Пожалуй, именно благодаря NumPy Python получил настолько широкое распространение как инструмент научных вычислений. Освоив идеи NumPy, вы сможете с лёгкостью работать со всеми остальными библиотеками, основанными на данной библиотеке.
Основные возможности NumPy:
работа с многомерными массивами, в частости, с матрицами;
векторизованные математические операции с массивами. Это означает, что процессор компьютера с поддержкой инструкций SIMD выполняет операции одновременно (параллельно) сразу над несколькими элементами массивов. Это значительно увеличивает скорость вычислений;
имеется модуль линейной алгебры
numpy.linalg
: обратные матрицы, определители, собственные числа и векторы, решение систем линейных алгебраических уравнений и т.п.;сохранение данных в файлы (в том числе с сжатием) и чтение данных из файлов различных форматов;
построение регулярных сеток и вычисления на них и многое другое.
NumPy имеет простой и мощный Python-like синтаксис, который очень гармонично сочетается с Python.
Эффективность NumPy во многом обусловлена тем, что массивы NumPy являются классическими, а именно, имеют фиксированный размер и хранят данные одного типа.
Хотя NumPy позволяет хранить и Python-объекты различного типа и размера в одном массиве (с типом данных object
), использовать массивы для этого не стоит - производительность может стать хуже, чем у чистого Python.
Для хранения сложных объектов стоит использовать средства Python (списки, кортежи и т.д.).