Numerical Python (numpy) |
Автор: admin Просмотров: 3230 Комментарии:
Добавлен: 15 февраля 2015
Обновлено: 7.09.2016 - 15:17
Расширение языка программирования Python, добавляющее поддержку больших многомерных массивов и матриц, а также большую библиотеку высокоуровневых математических функций для работы с этими массивами.
Возможности NumPy:
- Мощный N-мерный массив объектов.
- Сложные функции трансляции.
- Инструменты интеграции кода C/C++ и Fortran.
- Линейная алгебра, преобразования Фурье, генерация случайных чисел.
Кроме очевидных научных целей, NumPy также можно использовать в качестве эффективного многомерного контейнера общих данных. Произвольные типы данных можно определять. Это позволяет NumPy, чтобы легко и быстро интегрировать с широким спектром баз данных.
Особенности NumPy
NumPy нацелен на CPython, эталонную реализацию Python, который является не-оптимизирующим интерпретатором байткода. Математические алгоритмы, написанные для этой версии Python часто работают намного медленнее, чем скомпилированные эквиваленты. Numpy решить проблему замедленности частично путем предоставления многомерных массивов и функций и операторов, которые работают эффективно на массивах, требующих (пере) писать код, в основном внутренние циклы.
Использование NumPy в Python предоставляет функциональность, сравнимую с MATLAB, так как они оба интерпретируются, и оба они позволяют пользователю писать быстрые программы до тех пор, как большинство операций работают с массивами или матрицами вместо скаляров. Для сравнения, MATLAB имеет большое количество дополнительных инструментариев, в частности Simulink; в то время как NumPy неразрывно интегрирован с Python, более современным, полным и открытым языком программирования. Доступны дополнительные пакеты Python, библиотека SciPy, которая добавляет больше MATLAB-подобных возможностей и Matplotlib представляет собой пакет, который обеспечивает построение MATLAB-подобных функциональных возможностей построения графиков. Внутри как и MATLAB так и NumPy полагается на BLAS и LAPACK для эффективных линейных вычислений алгебры.
Ndarray структура данных
Базовой функциональностью NumPy является его "ndarray", для n-мерных массивов структура данных. В отличие от встроенной структуры списка данных Python (который, несмотря на название, является динамический массивом), эти массивы однородно печатаются, все элементы одного массива должны иметь один и тот же тип.
Такие массивы можно просматривать в буферах памяти от C/C++, Cython, и Fortran расширений для интерпретатора CPython без необходимости копирования данных, давая степень совместимости с существующими численными библиотеками. Эта функциональность использует пакет SciPy, который оборачивает ряд таких библиотек (в частности , BLAS и LAPACK). NumPy имеет встроенную поддержку отображения в память ndarrays.
Ограничения NumPy
Массивы Numpy должны быть отображены в смежных буферах памяти. Заменяющий пакет Blaze пытается преодолеть это ограничение. Алгоритмы не предоставляемые как векторизованные операции, как правило, работают медленно, потому что они должны быть выполнены на чистом Python, в то время как векторизация может увеличить сложность памяти некоторых операций с постоянной к линейной, так как временные массивы должны быть созданы, которые являются столь же большими как входы. Runtime компиляция числового кода реализована несколькими группами, чтобы избежать этих проблем;open source решения, которые взаимодействуют с NumPy: scipy.weave, numexpr и Numba. Cython является альтернативным статическим компилятором для этого.
Примеры: https://en.wikipedia.org/wiki/NumPy
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Научные и инженерные программы
Комментарии |