Numpy python для windows

2. Установка NumPy

2.1. NumPy в составе научных дистрибутивов Python

2.1.1. Anaconda

Пожалуй, самый лучший способ установки и использования стека пакетов SciPy, (в том числе и NumPy) является установка дистрибутива Anaconda. Устанавливая данный дистрибутив, вы устанавливаете несколько сотен (порядка 400, в зависимости от используемой вами платформы) самых разных пакетов. Может показаться избыточным, но на деле это оказывается очень удобным — практически все, что может вам понадобится, находится у вас под рукой. Так же вы получаете интерактивную оболочку IPython в привлекательной web-обертке Jupyter. В такой среде очень удобно работать. Например на картинке ниже показано, как выглядит создание матрицы из случайных чисел размером 10х10 и оформлен ее удобный для восприятия вывод с помощью библиотеки SymPy.

Чтобы установить дистрибутив Anaconda, сначала его нужно скачать с официального сайта. Прежде чем нажимать кнопку «download», уточните параметры своей платформы (допустим, у меня это Linux-x86 32 bit). Пока идет скачивание и установка, вы можете изучить доступные в вашем дистрибутиве пакеты и документацию к ним. Думаю, даже после беглого просмотра, вы убедитесь, что вы действительно имеете под рукой очень и очень много самых разнообразных инструментов.

Не смотря на то, что Anaconda сейчас является лидирующим по популярности дистрибутивом Python, не стоит забывать о других дистрибутивах. Все они предоставляют возможность работы со стеком SciPy и NumPy в частности. Помимо прочего, так же как и Anaconda они включают множество научных и вспомогательных библиотек. Однако, все они имеют значительные отличия от Anaconda.

2.1.2. ActivePython

Коммерческий (бесплатный период 30 дней) дистрибутив Python, предназначенный для быстрого внедрения и сопровождения серьезных проектов на базе Python. Содержит предварительно скомпилированные и настроенные решения практически для всех ключевых отраслей, что позволяет значительно сократить время на установку и настройку. Может быть установлен на целый ряд операционных систем. Содержит удобные инструменты для работы в Windows.

ActivePython полностью защищает от всех рисков, связанных с использованием ПО под лицензией GNU/GPL. Все пакеты доступные в собственном репозитории проверяются на безопасность и являются защищенными. Данный дистрибутив всегда включает только последнюю версию OpenSSL. Содержит обширную документацию, но при этом сама организация-разработчик обеспечивает техническую поддержку и всегда дает ответы даже на самые сложные вопросы.

2.1.3. Enthought Canopy

Данный дистрибутив предоставляет, как интерактивную среду, так и собственную среду разработки, причем вы не ограничены какой-то одной версией Python, а можете сами выбирать с какой именно версией Python вы будете работать к примеру 2.7 или 3.5. При этом вы так же имеете доступ к более чем 450 пакетам.

Весьма интересной особенностью Enthought Canopy является работа с научными и аналитическими пакетами. В вашем распоряжении появляется графический менеджер пакетов, который позволяет гибко манипулировать всеми пакетами и их зависимостями. При этом гарантируется что вы имеете доступ к самым стабильным (проверенным) версиям пакетов. Это не означает, что в других дистрибутивах не следят за включаемыми в них пакетами, но Enthought подчеркнуто гарантирует это.

Enthought Canopy включает в себя редактор кода, интегрированное окно IPython в оболочке Jupyter, интерактивный графический отладчик и встроенные инструменты импорта данных. Нельзя не упомянуть о MayaVi — визуализаторе научных данных и BlockCanvasи — визуализаторе для создания имитационных экспериментов. При этом вы имеете мгновенный доступ к пакетной документации, что весьма и весьма удобно.

Enthought Canopy способен работать с Eхcel и LabVIEW, имеет собственный сервер для совместной работы в рамках частных сетей, и имеет много других способов для интеграции в существующую инфраструктуру. Конечно за дополнительные возможности наверняка придется заплатить, но бесплатная версия прекрасно подойдет для научных и инженерных расчетов.

2.1.4. Intel® Distribution for Python

Данный дистрибутив является бесплатным и предоставляет собой высокоскоростную реализацию Python и большого количества научных пакетов. Например, в зависимости от испльзуемого процессора, производительность NumPy, SciPy и numexpr благодаря библиотеке Intel® Math Kernel Library может превосходить производительность тех же библиотек на тех же процессорах от 1,3 до нескольких тысяч раз.

Данный дистрибутив не так прост в установке и настройке, как другие и содержит не так много научных пакетов в своем составе. Но он очень хорошо задокументирован и недостающие пакеты могут быть легко установленны с помощью менеджера пакетов Conda. Помимо прочего, вместе с данным дистрибутивом можно легко использовать другие специализированные библиотеки от Intel®, например Intel® pyDAAL — хорошая альтернатива scikit-learn.

Читайте также:  Nvidia geforce gtx 1650 super драйвера windows 10 pro

2.1.5. Python(x,y)

Этот дистрибутив больше всего подойдет приверженцам Windows. Абсолютно бесплатен, включает в себя множество научных пакетов и NumPy само-собой разумеется. При этом вы можете создавать научные проекты с Qt-интерфейсом, и работать в Spyder — научно-ориентированной среде разработки. В принципе, это и является ключевой особенностью Python(x,y). Вы действительно можете создавать как маленькие так и большие научные проекты.

Устанавливая Python(x,y), вы получаете очень много инструментов для создания серьезных научных приложений: от компиляторов С/С++/Fortran до средств документирования. Нельзя сказать, что данный дистрибутив является чем-то уникальным, но он определенно заслуживает внимания, особенно, пользователей Windows.

2.1.6. WinPython

Это бесплатный портативный дистрибутив Python — который является просто спасением для пользователей Windows. Слово «портативный» означает, что все необходимое находится в пределах одной папки и может копироваться куда угодно без предварительной установки. При этом на одной машине может запускаться несколько версий Python, причем для разных архитектур. Вы можете хранить весь свой проект на флэшке и работать с ним на любой Windows машине.

Наверное, стоит особо отметить, что данный дистрибутив, все же предназначен для продвинутых научных разработчиков и одновременно продвинутых пользователей Windows. Т. е. это означает, что вы не только создаете, но и сопровождаете научное программное обеспечение и точно знаете что делаете.

2.1.7. Pyzo

Бесплатный кросплатформенный дистрибутив, о котором, весьма лестно отзываются пользователи, особенно OSX. На самом деле, на данный момент, Pyzo представляет собой не дистрибутив, а IDE, которая нацелена на интерактивность и простоту, подходящую не только ученым, но даже школьникам.

Pyzo позволяет выбрать используемый интерпретатор Python и обычно используется с miniconda или anaconda, для упрощения установки научных пакетов. Эту IDE легко установить и легко начать с ней работать. На официальном сайте, достаточно информации для новичков-разработчиков. Поэтому, в отличии от WinPython, Pyzo с увереностью можно порекомендовать тем кто только начинает создавать научное программное обеспечение.

2.1.8. Какой дистрибутив выбрать?

Если вы являетесь новичком в науке или если в вашей работе исследования очень значительно преобладают над разработкой, то я порекомендовал бы дистрибутив Anaconda. Такая рекомендация связана стем, что в образовании и исследованиях IPython, Jupyter и установленных по умолчанию пакетов более чем достаточно. Конечно, рано или поздно, вы столкнетесь с тем, что вам потребуется писать не просто скрипты, но и код, который будет использоваться повторно и очень много раз. Поэтому, здесь обязательно пригодится IDE Spyder и всевозможные инструменты для построения графических инструментов.

Отдельного внимания заслуживает Intel® Distribution for Python, который окажется очень полезен для тех, кто уже перешел в рабочую фазу и ежедневно имеет дело с задачами анлиза данных, машинного обучения или любыми другими, если вы их решаете с помощью стека пакетов SciPy. Даже небольшой прирост в скорости вычислений — это большой плюс. Конечно прирост в 1,3 раза ничего не даст, но если вы готовы приобрести более мощные процессоры, то Intel® Distribution for Python позволит вам использовать весь их потенциал. Причем для этого не требуется знание С и Fortran. Хотя в тоже время знание С и Fortran с инструментами от Intel® может увеличить скорость вычислений на целые порядки.

Ну а все остальное я бы порекомендовал тем кто имеет склонность к разработке научного софта или имеет потребность в ее создании. Причем, новичкам на этом поприще, наверняка стоит начать с Pyzo, думаю, и обучение разработке с данной IDE окажется довольно успешным. Что касается Enthought Canopy, то данный дистрибутив, наверняка больше всего подойдет, как будующим так и состоявшимся инженерам. ActivePython окажется незаменим в коммерческих организациях. А вот Python(x,y) и WinPython больше всего подойдут, как неискушенным так и профессиональным пользователям Windows.

И на последок, данный короткий обзор содержит лишь крайне поверхностный обзор дистрибутивов Python. Я не знаю, какие именно цели вы преследуете и поэтому, прежде чем выбирать, ознакомьтесь с каждым дистрибутивом самостоятельно на его официальном сайте. Если вы преследуете только одну цель — научиться работать с пакетом NumPy (или другими научными пакетами), то повторюсь, лучше всего установить Anaconda. Если изучение NumPy — лишь шаг к более высокой цели, в достижении которой дистрибутив должен послужить основным инструментом, то к выбору дистрибутива нужно подходить более тщательно.

2.1.9. Использование в коммерческих целях

В подавляющем большинстве случаев, пакеты Python относятся к ПО с открытым исходным кодом, но если вы собираетесь использовать какие-то пакеты для извлечения коммерческой выгоды, то обязательно ознакомьтесь с их лицензией. Пользователям ActivePython и платных версий дистрибутивов Anaconda и Enthought Canopy в случае возникновения проблем, связанных с лицензиями на пакеты, предоставляются разнообразные компенсации.

2.2. Установка с помощью pip

Если по некоторым причинам вам необходим только пакет NumPy и больше ничего, то его можно установить с помощью стандартного менеджера пакетов Python — pip. Практически все пакеты разрабатываемые крупными проектами выгружаются в каталог пакетов Python (PyPI) и NumPy — не исключение. менеджер пакетов pip, как раз и нужен для того что бы устанавливать пакеты из этого каталога.

Читайте также:  Инструкция по установке для линукса

Если в вашей системе установлен Python и pip, то установить NumPy можно с помощью команды:

С помощью этой же команды можно установить любой пакет из стека SciPy:

Или сразу весь стек SciPy:

В данных примерах используется флаг —user для того что бы пакеты не записывались в системные папки и были доступны только локадьному пользователю. Если для вас это не принципиально, просто не используйте этот флаг.

2.3. Установка через менеджер пакетов Linux

Ubuntu и Debian

Пользователи Linux могут установить NumPy и весь стек пакетов SciPy из репозиториев. Однако, может оказаться, что установленный пакет окажется более старой или вовсе не подходящей версией. К тому же установка окажется общесистемной.

Или весь стек целиком

Fedora 22 и выше

2.4. Установка через менеджер пакетов MAC

У MAC нет предустановленного менеджера пакетов и если в вашей системе он отсутствует, то рекомендуется установить Macports. Для установки NumPy и всего стека пакетов SciPy выполните следующую команду:

В данном примере производится установка для Python версии 3.4. Если вы используете другую версию Python, допустим 3.5 то просто замените py34 на py35.

Если вы используете мнеджер Homebrew, то просто выполните:

2.5. Windows

Если по некоторым причинам в Windows вам не подходит установка с помощью pip, то ознакомьтесь с проектом Christoph Gohlke, который предоставляет возможность использовать двоичные файлы (32 и 64 бит) созданных для официального дистрибутива Python на языке CPython. Однако, лучшим вариантом все-таки остается pip.

2.6. Сборка NumPy из исходных компонентов

Создавать Пакеты из исходных текстов кода Python относительно легко, но NumPy требует подключения компилятора Fortran и компиляции кода C. Поэтому, если возникла такая необходимость, то лучше обратиться к официальной документации.

Installing NumPy

The only prerequisite for installing NumPy is Python itself. If you don’t have Python yet and want the simplest way to get started, we recommend you use the Anaconda Distribution — it includes Python, NumPy, and many other commonly used packages for scientific computing and data science.

NumPy can be installed with conda , with pip , with a package manager on macOS and Linux, or from source. For more detailed instructions, consult our Python and NumPy installation guide below.

CONDA

If you use conda , you can install NumPy from the defaults or conda-forge channels:

PIP

If you use pip , you can install NumPy with:

Also when using pip, it’s good practice to use a virtual environment — see Reproducible Installs below for why, and this guide for details on using virtual environments.

Python and NumPy installation guide

Installing and managing packages in Python is complicated, there are a number of alternative solutions for most tasks. This guide tries to give the reader a sense of the best (or most popular) solutions, and give clear recommendations. It focuses on users of Python, NumPy, and the PyData (or numerical computing) stack on common operating systems and hardware.

Recommendations

We’ll start with recommendations based on the user’s experience level and operating system of interest. If you’re in between “beginning” and “advanced”, please go with “beginning” if you want to keep things simple, and with “advanced” if you want to work according to best practices that go a longer way in the future.

Beginning users

On all of Windows, macOS, and Linux:

  • Install Anaconda (it installs all packages you need and all other tools mentioned below).
  • For writing and executing code, use notebooks in JupyterLab for exploratory and interactive computing, and Spyder or Visual Studio Code for writing scripts and packages.
  • Use Anaconda Navigator to manage your packages and start JupyterLab, Spyder, or Visual Studio Code.

Advanced users

Windows or macOS

  • Install Miniconda.
  • Keep the base conda environment minimal, and use one or more conda environments to install the package you need for the task or project you’re working on.
  • Unless you’re fine with only the packages in the defaults channel, make conda-forge your default channel via setting the channel priority.

Linux

If you’re fine with slightly outdated packages and prefer stability over being able to use the latest versions of libraries:

  • Use your OS package manager for as much as possible (Python itself, NumPy, and other libraries).
  • Install packages not provided by your package manager with pip install somepackage —user .

If you use a GPU:

  • Install Miniconda.
  • Keep the base conda environment minimal, and use one or more conda environments to install the package you need for the task or project you’re working on.
  • Use the defaults conda channel ( conda-forge doesn’t have good support for GPU packages yet).
  • Install Miniforge.
  • Keep the base conda environment minimal, and use one or more conda environments to install the package you need for the task or project you’re working on.
Читайте также:  Набор иконок для папок windows

Alternative if you prefer pip/PyPI

For users who know, from personal preference or reading about the main differences between conda and pip below, they prefer a pip/PyPI-based solution, we recommend:

  • Install Python from python.org, Homebrew, or your Linux package manager.
  • Use Poetry as the most well-maintained tool that provides a dependency resolver and environment management capabilities in a similar fashion as conda does.

Python package management

Managing packages is a challenging problem, and, as a result, there are lots of tools. For web and general purpose Python development there’s a whole host of tools complementary with pip. For high-performance computing (HPC), Spack is worth considering. For most NumPy users though, conda and pip are the two most popular tools.

Pip & conda

The two main tools that install Python packages are pip and conda . Their functionality partially overlaps (e.g. both can install numpy ), however, they can also work together. We’ll discuss the major differences between pip and conda here — this is important to understand if you want to manage packages effectively.

The first difference is that conda is cross-language and it can install Python, while pip is installed for a particular Python on your system and installs other packages to that same Python install only. This also means conda can install non-Python libraries and tools you may need (e.g. compilers, CUDA, HDF5), while pip can’t.

The second difference is that pip installs from the Python Packaging Index (PyPI), while conda installs from its own channels (typically “defaults” or “conda-forge”). PyPI is the largest collection of packages by far, however, all popular packages are available for conda as well.

The third difference is that conda is an integrated solution for managing packages, dependencies and environments, while with pip you may need another tool (there are many!) for dealing with environments or complex dependencies.

Reproducible installs

As libraries get updated, results from running your code can change, or your code can break completely. It’s important to be able to reconstruct the set of packages and versions you’re using. Best practice is to:

  1. use a different environment per project you’re working on,
  2. record package names and versions using your package installer; each has its own metadata format for this:
    • Conda: conda environments and environment.yml
    • Pip: virtual environments and requirements.txt
    • Poetry: virtual environments and pyproject.toml

NumPy packages & accelerated linear algebra libraries

NumPy doesn’t depend on any other Python packages, however, it does depend on an accelerated linear algebra library — typically Intel MKL or OpenBLAS. Users don’t have to worry about installing those (they’re automatically included in all NumPy install methods). Power users may still want to know the details, because the used BLAS can affect performance, behavior and size on disk:

The NumPy wheels on PyPI, which is what pip installs, are built with OpenBLAS. The OpenBLAS libraries are included in the wheel. This makes the wheel larger, and if a user installs (for example) SciPy as well, they will now have two copies of OpenBLAS on disk.

In the conda defaults channel, NumPy is built against Intel MKL. MKL is a separate package that will be installed in the users’ environment when they install NumPy.

In the conda-forge channel, NumPy is built against a dummy “BLAS” package. When a user installs NumPy from conda-forge, that BLAS package then gets installed together with the actual library — this defaults to OpenBLAS, but it can also be MKL (from the defaults channel), or even BLIS or reference BLAS.

The MKL package is a lot larger than OpenBLAS, it’s about 700 MB on disk while OpenBLAS is about 30 MB.

MKL is typically a little faster and more robust than OpenBLAS.

Besides install sizes, performance and robustness, there are two more things to consider:

  • Intel MKL is not open source. For normal use this is not a problem, but if a user needs to redistribute an application built with NumPy, this could be an issue.
  • Both MKL and OpenBLAS will use multi-threading for function calls like np.dot , with the number of threads being determined by both a build-time option and an environment variable. Often all CPU cores will be used. This is sometimes unexpected for users; NumPy itself doesn’t auto-parallelize any function calls. It typically yields better performance, but can also be harmful — for example when using another level of parallelization with Dask, scikit-learn or multiprocessing.

Troubleshooting

If your installation fails with the message below, see Troubleshooting ImportError.

Оцените статью