NumPy

Поделись знанием:
Перейти к: навигация, поиск
NumPy
Тип

Библиотека для языка Python

Разработчик

Сообщество

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

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

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

1.11.1 (27 Мая 2016 года)

Лицензия

BSD

Сайт

[numpy.org/ rg]

К:Википедия:Статьи без изображений (тип: не указан)

NumPy — это библиотека с открытым исходным кодом для языка программирования Python. Возможности:





Назначение

Математические алгоритмы, реализованные на интерпретируемых языках (например, Python), часто работают гораздо медленнее тех же алгоритмов, реализованных на компилируемых языках (например, Фортран, Си, Java). Библиотека NumPy предоставляет реализации вычислительных алгоритмов (в виде функций и операторов), оптимизированные для работы с многомерными массивами. В результате любой алгоритм, который может быть выражен в виде последовательности операций над массивами (матрицами) и реализованный с использованием NumPy, работает так же быстро, как эквивалентный код, выполняемый в MATLAB[1].

Сравнение с MATLAB

NumPy можно рассматривать как свободную альтернативу MATLAB. Язык программирования MATLAB внешне напоминает NumPy: оба они интерпретируемые, оба позволяют выполнять операции над массивами (матрицами), а не над скалярами. Преимущество MATLAB в наличии большого количества пакетов («тулбоксов»), например, Simulink (англ.). Для NumPy тоже существуют подобные «пакеты», например, библиотека SciPy предоставляет больше MATLAB-подобной функциональности, библиотека Matplotlib позволяет создавать графики в стиле MATLAB. И MATLAB, и NumPy для решения основных задач линейной алгебры используют код, основанный на коде библиотеки LAPACK.

Пример

Рассмотрим пример работы с NumPy в интерактивной оболочке IPython.

Запуск Python из командной строки:

ipython -pylab

Код:

x = linspace( 0, 2*pi, 100 )
y = sin( x )
plot( x, y, 'ro-' )

В результате работы сценария библиотека Matplotlib создаст график, изображённый на рисунке.

История

В 1995 году программист Jim Hugunin написал библиотеку Numeric для языка Python. Библиотека развивалась при участии многих людей, среди которых были Jim Fulton, David Ascher, Paul DuBois и Konrad Hinsen. Библиотека доступна по сей день, считается вполне стабильной и полной, но устаревшей.

Предлагалось добавить Numeric в стандартную библиотеку языка Python, но Гвидо Ван Россум (автор Python) чётко дал понять, что код в его тогдашнем состоянии было невозможно поддерживать.

Кроме того, библиотека Numeric медленно обрабатывала большие массивы данных.

На основе библиотеки Numeric была создана библиотека NumArray. Код Numeric был полностью переписан.

Библиотека NumArray обрабатывала большие массивы данных быстрее библиотеки Numeric, но малые массивы обрабатывала медленнее.

Некоторое время использовалась и библиотека Numeric, и библиотека NumArray. Последняя версия Numeric (v24.2) была выпущена 11 ноября 2005 года. Последняя версия NumArray (v1.5.2) вышла 24 августа 2006 года[2]. Библиотека NumArray более не рекомендуется к использованию[3].

В начале 2005 года программист Travis Oliphant захотел объединить сообщество вокруг одного проекта и для замены библиотек Numeric и NumArray создал библиотеку NumPy. NumPy был создан на основе кода Numeric. Код Numeric был переписан так, чтобы его было легче поддерживать, и в библиотеку можно было добавить новые возможности. Возможности NumArray были добавлены в NumPy.

Изначально NumPy был частью библиотеки SciPy. Чтобы позволить другим проектам использовать библиотеку NumPy, её код был помещён в отдельный пакет.

Исходный код NumPy находится в открытом доступе. Существует большое количество документации. Имеется даже подробный «Путеводитель по NumPy»[4].

NumPy v1.3.0 выпущен 5 апреля 2009 года и поддерживает Python v2.6[5]. Поддержка Python v3 была добавлена начиная с версии 1.5.0.

См. также

Напишите отзыв о статье "NumPy"

Примечания

  1. [scipy.org/PerformancePython SciPy PerformancePython]. Проверено 25 июня 2006. [www.webcitation.org/66erkpN8x Архивировано из первоисточника 4 апреля 2012].
  2. [sourceforge.net/project/showfiles.php?group_id=1369 NumPy Sourceforge Files]. Проверено 24 марта 2008. [www.webcitation.org/66erllXAq Архивировано из первоисточника 4 апреля 2012].
  3. [www.stsci.edu/resources/software_hardware/numarray Numarray Homepage]. Проверено 24 июня 2006.
  4. Oliphant Travis E. [web.mit.edu/dvp/Public/numpybook.pdf Guide to NumPy].
  5. [sourceforge.net/project/shownotes.php?release_id=673613&group_id=1369 NumPy 1.3.0 Release Notes]. Проверено 2 мая 2009. [www.webcitation.org/66ermLXgs Архивировано из первоисточника 4 апреля 2012].

Ссылки

  • [www.numpy.org/ Официальный сайт NumPy].
  • [scipy.org/NumPy NumPy Project Homepage]
  • [www.scipy.org/History_of_SciPy/ History of SciPy] (англ.)
  • [www.scipy.org/Cookbook/BuildingArrays Building Arrays] (англ.)
  • [wiki.scipy.org/Numpy_Example_List_With_Doc Numpy Example List With Doc] (англ.)

Отрывок, характеризующий NumPy

– Фр… фр… – фыркал князь Николай Андреич.
– Князь от имени своего воспитанника… сына, тебе делает пропозицию. Хочешь ли ты или нет быть женою князя Анатоля Курагина? Ты говори: да или нет! – закричал он, – а потом я удерживаю за собой право сказать и свое мнение. Да, мое мнение и только свое мнение, – прибавил князь Николай Андреич, обращаясь к князю Василью и отвечая на его умоляющее выражение. – Да или нет?
– Мое желание, mon pere, никогда не покидать вас, никогда не разделять своей жизни с вашей. Я не хочу выходить замуж, – сказала она решительно, взглянув своими прекрасными глазами на князя Василья и на отца.
– Вздор, глупости! Вздор, вздор, вздор! – нахмурившись, закричал князь Николай Андреич, взял дочь за руку, пригнул к себе и не поцеловал, но только пригнув свой лоб к ее лбу, дотронулся до нее и так сжал руку, которую он держал, что она поморщилась и вскрикнула.
Князь Василий встал.
– Ma chere, je vous dirai, que c'est un moment que je n'oublrai jamais, jamais; mais, ma bonne, est ce que vous ne nous donnerez pas un peu d'esperance de toucher ce coeur si bon, si genereux. Dites, que peut etre… L'avenir est si grand. Dites: peut etre. [Моя милая, я вам скажу, что эту минуту я никогда не забуду, но, моя добрейшая, дайте нам хоть малую надежду возможности тронуть это сердце, столь доброе и великодушное. Скажите: может быть… Будущность так велика. Скажите: может быть.]
– Князь, то, что я сказала, есть всё, что есть в моем сердце. Я благодарю за честь, но никогда не буду женой вашего сына.
– Ну, и кончено, мой милый. Очень рад тебя видеть, очень рад тебя видеть. Поди к себе, княжна, поди, – говорил старый князь. – Очень, очень рад тебя видеть, – повторял он, обнимая князя Василья.
«Мое призвание другое, – думала про себя княжна Марья, мое призвание – быть счастливой другим счастием, счастием любви и самопожертвования. И что бы мне это ни стоило, я сделаю счастие бедной Ame. Она так страстно его любит. Она так страстно раскаивается. Я все сделаю, чтобы устроить ее брак с ним. Ежели он не богат, я дам ей средства, я попрошу отца, я попрошу Андрея. Я так буду счастлива, когда она будет его женою. Она так несчастлива, чужая, одинокая, без помощи! И Боже мой, как страстно она любит, ежели она так могла забыть себя. Может быть, и я сделала бы то же!…» думала княжна Марья.


Долго Ростовы не имели известий о Николушке; только в середине зимы графу было передано письмо, на адресе которого он узнал руку сына. Получив письмо, граф испуганно и поспешно, стараясь не быть замеченным, на цыпочках пробежал в свой кабинет, заперся и стал читать. Анна Михайловна, узнав (как она и всё знала, что делалось в доме) о получении письма, тихим шагом вошла к графу и застала его с письмом в руках рыдающим и вместе смеющимся. Анна Михайловна, несмотря на поправившиеся дела, продолжала жить у Ростовых.
– Mon bon ami? – вопросительно грустно и с готовностью всякого участия произнесла Анна Михайловна.
Граф зарыдал еще больше. «Николушка… письмо… ранен… бы… был… ma сhere… ранен… голубчик мой… графинюшка… в офицеры произведен… слава Богу… Графинюшке как сказать?…»
Анна Михайловна подсела к нему, отерла своим платком слезы с его глаз, с письма, закапанного ими, и свои слезы, прочла письмо, успокоила графа и решила, что до обеда и до чаю она приготовит графиню, а после чаю объявит всё, коли Бог ей поможет.
Всё время обеда Анна Михайловна говорила о слухах войны, о Николушке; спросила два раза, когда получено было последнее письмо от него, хотя знала это и прежде, и заметила, что очень легко, может быть, и нынче получится письмо. Всякий раз как при этих намеках графиня начинала беспокоиться и тревожно взглядывать то на графа, то на Анну Михайловну, Анна Михайловна самым незаметным образом сводила разговор на незначительные предметы. Наташа, из всего семейства более всех одаренная способностью чувствовать оттенки интонаций, взглядов и выражений лиц, с начала обеда насторожила уши и знала, что что нибудь есть между ее отцом и Анной Михайловной и что нибудь касающееся брата, и что Анна Михайловна приготавливает. Несмотря на всю свою смелость (Наташа знала, как чувствительна была ее мать ко всему, что касалось известий о Николушке), она не решилась за обедом сделать вопроса и от беспокойства за обедом ничего не ела и вертелась на стуле, не слушая замечаний своей гувернантки. После обеда она стремглав бросилась догонять Анну Михайловну и в диванной с разбега бросилась ей на шею.
– Тетенька, голубушка, скажите, что такое?
– Ничего, мой друг.
– Нет, душенька, голубчик, милая, персик, я не отстaнy, я знаю, что вы знаете.
Анна Михайловна покачала головой.
– Voua etes une fine mouche, mon enfant, [Ты вострушка, дитя мое.] – сказала она.
– От Николеньки письмо? Наверно! – вскрикнула Наташа, прочтя утвердительный ответ в лице Анны Михайловны.
– Но ради Бога, будь осторожнее: ты знаешь, как это может поразить твою maman.