NumPy – это библиотека для языка программирования Python, которая предоставляет поддержку для работы с многомерными массивами и матрицами, включая большой набор математических функций для работы с ними. NumPy широко используется для научных вычислений, обработки данных и машинного обучения благодаря высокой производительности и эффективности операций над массивами.
Математические алгоритмы, реализованные на интерпретируемых языках (например, Python), часто работают гораздо медленнее тех же алгоритмов, реализованных на компилируемых языках (например, Фортран, Си, Java). Библиотека NumPy предоставляет реализации вычислительных алгоритмов (в виде функций и операторов), оптимизированные для работы с многомерными массивами. В результате любой алгоритм, который может быть выражен в виде последовательности операций над массивами (матрицами) и реализованный с использованием NumPy, работает так же быстро, как эквивалентный код, выполняемый в MATLAB.
NumPy можно рассматривать как свободную альтернативу MATLAB. Язык программирования MATLAB внешне напоминает NumPy: оба они интерпретируемые, оба позволяют выполнять операции над массивами (матрицами), а не над скалярами. Преимущество MATLAB в наличии большого количества пакетов («тулбоксов»), например, Simulink. Для NumPy тоже существуют подобные «пакеты», например, библиотека SciPy предоставляет больше MATLAB-подобной функциональности, библиотека Matplotlib позволяет создавать графики в стиле MATLAB. И MATLAB, и NumPy для решения основных задач линейной алгебры используют код, основанный на коде библиотеки LAPACK.
Изначально NumPy был частью библиотеки SciPy. Чтобы позволить другим проектам использовать библиотеку NumPy, её код был помещён в отдельный пакет.
Исходный код NumPy находится в открытом доступе. Существует большое количество документации. Имеется даже подробный «Путеводитель по NumPy».
NumPy v1.3.0 выпущен 5 апреля 2009 года и поддерживает Python v2.6. Поддержка Python v3 была добавлена начиная с версии 1.5.0.
Библиотека NumPy v.1.26.0 выпущена 16 сентября 2023 года и поддерживает Python 3.12. Особенностью данного релиза являются:
- Поддержка Python 3.12.0
- Совместимость с Cython 3.0.0
- Использование системы сборки Meson
- Обновлена поддержка архитектуры SIMD
- Исправления для f2py, поддержка meson и bind(x)
- Поддержка для обновленной библиотекки Accelerate BLAS/LAPACK
Версии Python, поддерживаемые в данном релизе: от 3.9 до 3.12.
Некоторые из популярных программ, использующих библиотеку NumPy, включают в себя:
1. Pandas – библиотека для обработки и анализа данных, которая опирается на NumPy для работы с массивами данных.
2. SciPy – набор алгоритмов и инструментов для выполнения научных и инженерных вычислений, который также использует NumPy.
3. Matplotlib – библиотека для создания визуализаций данных, которая может работать с данными, представленными в виде массивов NumPy.
4. Scikit-learn – библиотека машинного обучения, которая использует NumPy для работы с данными и реализации алгоритмов машинного обучения.
5. TensorFlow и PyTorch – библиотеки глубокого обучения, которые также используют NumPy для работы с массивами данных.