- NumPy
-
NumPy Тип расширение языка Python
Разработчик Проект сообщества
Операционная система Последняя версия 1.6.1 (20 июля 2011)
Лицензия Сайт NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами. Предшественник NumPy, Numeric, был изначально создан Jim Hugunin. NumPy — открытое программное обеспечение, поучаствовать в разработке может любой желающий.
Содержание
Мотивация
Поскольку Python — интерпретируемый язык, математические алгоритмы часто работают в нём гораздо медленнее, чем в компилируемых языках, таких как Cи или Java. NumPy пытается решить эту проблему для большого количества вычислительных алгоритмов, обеспечивая поддержку многомерных массивов и множество функций и операторов для работы с ними. Таким образом, любой алгоритм, который может быть выражен в основном как последовательность операций над массивами и матрицами, работает так же быстро, как эквивалентный код, выполняемый в MATLAB, а после специальной оптимизации скорость может достигнуть скорости компилируемых языков типа Cи.[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.
См. также
Примечания
- ↑ SciPy PerformancePython. Архивировано из первоисточника 4 апреля 2012. Проверено 25 июня 2006.
- ↑ Numarray Homepage. Проверено 24 июня 2006.
- ↑ NumPy Sourceforge Files. Архивировано из первоисточника 4 апреля 2012. Проверено 24 марта 2008.
- ↑ Oliphant Travis E. Guide to NumPy.
- ↑ NumPy 1.3.0 Release Notes. Архивировано из первоисточника 4 апреля 2012. Проверено 2 мая 2009.
Ссылки
Категории:- Программное обеспечение по алфавиту
- Библиотеки Python
- Научное программное обеспечение
- Свободные библиотеки программ
Wikimedia Foundation. 2010.