NumPy

NumPy
NumPy
Numpylogo.png
Тип

расширение языка Python

Разработчик

Проект сообщества

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

1.6.1 (20 июля 2011)

Лицензия

Лицензия BSD

Сайт

numpy.scipy.org

NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами. Предшественник NumPy, Numeric, был изначально создан Jim Hugunin. NumPy — открытое программное обеспечение, поучаствовать в разработке может любой желающий.

Содержание

Мотивация

Поскольку Python — интерпретируемый язык, математические алгоритмы часто работают в нём гораздо медленнее, чем в компилируемых языках, таких как или Java. NumPy пытается решить эту проблему для большого количества вычислительных алгоритмов, обеспечивая поддержку многомерных массивов и множество функций и операторов для работы с ними. Таким образом, любой алгоритм, который может быть выражен в основном как последовательность операций над массивами и матрицами, работает так же быстро, как эквивалентный код, выполняемый в MATLAB, а после специальной оптимизации скорость может достигнуть скорости компилируемых языков типа .[1]

NumPy можно рассматривать как хорошую свободную альтернативу MATLAB, поскольку язык программирования MATLAB внешне напоминает NumPy: оба они интерпретируемые, и оба позволяют пользователям писать быстрые программы, пока большинство операций производятся над массивами или матрицами, а не над скалярами. Преимущество MATLAB в большом количестве доступных дополнительных тулбоксов, включая такие как пакет Simulink. Основные пакеты, дополняющие NumPy, это: SciPy — библиотека, добавляющая больше MATLAB-подобной функциональности; Matplotlib — пакет для создания графики в стиле MATLAB. Внутренне как MATLAB, так и NumPy основаны на библиотеке LAPACK, предназначенной для решения основных задач линейной алгебры.

Пример

Результат работы скрипта

Это простой пример интерактивной манипуляции с массивами и отрисовки графика в NumPy. В примере также использована интерактивная оболочка IPython и графическая библиотека Matplotlib.

# Запуск Python из командной строки.
shell> ipython -pylab
Python 2.5.1 (r251:54863, Jun 15 2008, 18:24:51) 
Type "copyright", "credits" or "license" for more information.

IPython 0.8.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

  Welcome to pylab, a matplotlib-based Python environment.
  For more information, type 'help(pylab)'.

# Непосредственно код:
In [1]: x = linspace(0, 2*pi, 100)
In [2]: y = sin(x)
In [3]: plot(x,y,'ro-')

История NumPy

NumPy основан на двух более ранних пакетах для Python. Сначала был Numeric, вполне стабильный и полный, доступный по сей день, но устаревший. Он был написан в 1995 году программистом Jim Hugunin при участии многих людей, среди которых Jim Fulton, David Ascher, Paul DuBois, и Konrad Hinsen. Более новая версия под названием Numarray это полностью переписанный Numeric который теперь тоже не рекомендуется к использованию[2] NumPy объединяет в себе эти два пакета, он построен на базовом коде Numeric и дополнен возможностями Numarray.

Были высказаны пожелания добавить Numeric в стандартную библиотеку Python, но Гвидо Ван Россум (автор Python) четко дал понять что код в его тогдашнем состоянии было невозможно поддерживать. Другая проблема заключалась в том что на больших массивах Numeric был очень медленным. В результате был создан Numarray. Он быстрее на больших массивах, но медленнее на малых. Некоторое время использовались оба пакета. Последняя версия Numeric v24.2 была выпущена 11 Ноября 2005 года, а последняя версия numarray v1.5.2 вышла 24 августа 2006.[3]

В начале 2005 Travis Oliphant захотел объединить сообщество вокруг одного пакета матричных вычислений. Код Numeric был переписан так чтобы его было легче поддерживать и чтобы он мог включить новые возможности Numarray. Этот новый проект был частью SciPy. Чтобы не загружать весь пакет SciPy ради создания массива, NumPy был выделен в отдельный пакет. Хотя исходный код находится в открытом доступе и содержит большое количество документации, имеется также подробный Путеводитель по NumPy[4]

NumPy version 1.3.0, выпущен 5 Апреля 2009 года и поддерживает Python 2.6.[5] Поддержка Python 3 реализована начиная с версии 1.5.0.

См. также

Примечания

  1. SciPy PerformancePython. Архивировано из первоисточника 4 апреля 2012. Проверено 25 июня 2006.
  2. Numarray Homepage. Проверено 24 июня 2006.
  3. NumPy Sourceforge Files. Архивировано из первоисточника 4 апреля 2012. Проверено 24 марта 2008.
  4. Oliphant Travis E. Guide to NumPy.
  5. NumPy 1.3.0 Release Notes. Архивировано из первоисточника 4 апреля 2012. Проверено 2 мая 2009.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "NumPy" в других словарях:

  • NumPy — Developer(s) Community project Initial release 1995 (1995) Stable release 1.6 / May 14, 2011; 6 months ago …   Wikipedia

  • NumPy — Python Fichier:NumPy logo.png Système d exploitation Multiplate forme Site web www.numpy.org NumPy est une extension …   Wikipédia en Français

  • Numpy — An affectionately derogatory term, used to describe someone of slothful or slow demeanour. May also be used in the form of an adjective. Geoff (referring to Dean): What s Numpy up to today? Greg (referring to Dean): I dunno. Last time I checked… …   Dictionary of american slang

  • Numpy — An affectionately derogatory term, used to describe someone of slothful or slow demeanour. May also be used in the form of an adjective. Geoff (referring to Dean): What s Numpy up to today? Greg (referring to Dean): I dunno. Last time I checked… …   Dictionary of american slang

  • Eigenvalue algorithm — In linear algebra, one of the most important problems is designing efficient and stable algorithms for finding the eigenvalues of a matrix. These eigenvalue algorithms may also find eigenvectors. Contents 1 Characteristic polynomial 2 Power… …   Wikipedia

  • CUDA — Developer(s) Nvidia Corporation Stable release 4.0 / May 17 2011; 6 months ago (May 17 2011) Operating system Windows XP and later Mac OS X Linux …   Wikipedia

  • CUDA — Тип GPGPU Разработчик NVIDIA Corporation Операционная система Windows XP и выше, Mac OS X, Linux Аппаратная платформа …   Википедия

  • Sage — У этого термина существуют и другие значения, см. Sage (значения). Sage …   Википедия

  • Singular value decomposition — Visualization of the SVD of a 2 dimensional, real shearing matrix M. First, we see the unit disc in blue together with the two canonical unit vectors. We then see the action of M, which distorts the disk to an ellipse. The SVD decomposes M into… …   Wikipedia

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»