Библиотека NumPy в Python — это библиотека, которую используют при математических вычислениях, начиная от базовых функций и заканчивая линейной алгеброй.
Введение
NumPy (Numeríc Python, то есть цифровой Питон) является модулем с открытым исходным кодом для python, предоставляющим общие математические и числовые операции в виде предварительно скомпилированных, быстрых функций. Они могут быть объединены в программные пакеты высокого уровня. Они способны обеспечить функциональный набор, сравнимый с функционалом MatLab. NumPy может предоставить основные методы для обработки больших массивов данных и матриц. ScíPy (Scíentific Python) способен расширить возможности функционального набора NumPy за счет огромной коллекции разнообразных алгоритмов, включая минимизацию, преобразование Фурье, регрессию, и иные прикладные математические операции.
Библиотека NumPy в Python
Если у пользователя имеется Python(x, y), который является дистрибутивом программного продукта с открытым программным кодом, предназначенного для научных и инженерных исследований, а также для реализации численных расчетов, анализа и визуализации данных на основе языка программирования Python и значительного количества модулей (библиотек) на платформе Wíndows, то тогда необходимо его просто установить. Если же такого дистрибутива нет, то после того, как будет установлен Python, пользователю следует самому выполнить установку пакетов, вначале NumPy, а затем потом ScíPy.
Сообщество NumPy и ScíPy обладает онлайн руководством, содержащим всю необходимую информацию по установке и использованию библиотек. Существует несколько путей импорта модуля NumPy. Типовой методикой является использование простого выражения:
$>>>$ ímport numpy
Однако, если количество вызовов функций numpy достаточно большое, то не очень удобно каждый раз снова писать numpy.X. В таком случае значительно проще использовать другой метод:
$>>>$ ímport numpy as np
Данное выражение предоставляет возможность пользователю получить доступ к numpy объектам, применяя запись np.X вместо numpy.X. Кроме того имеется возможность импорта numpy непосредственно в используемое пространство имен, чтобы вообще не применять функции через точку, а осуществлять их вызов напрямую:
$>>>$ from numpy ímport *
Тем не менее, данный вариант не одобряется при программировании на Python, поскольку он убирает отдельные очень полезные структуры, которые модуль способен предоставить.
Основной особенностью numpy считается объект array. Массивы аналогичны спискам в Python, кроме того факта, что компоненты массива обязаны обладать одинаковым типом данных, а именно float или ínt. С массивами могут выполняться числовые операции со значительными объемами информации, причем гораздо быстрее и, главное, более эффективно, чем со списками.
Для создания массива из списка можно использовать следующую программу:
Рисунок 1. Программа. Автор24 — интернет-биржа студенческих работ
В данном примере функция array принимает следующие аргументы:
- Список элементов, подлежащих конвертации в массив.
- Тип для каждого из элементов.
К каждому элементу может быть получен доступ и с каждым элементом можно осуществлять разные манипуляции так же, как при работе с обычными списками, например:
Рисунок 2. Программа. Автор24 — интернет-биржа студенческих работ
Помимо одномерных массивов, можно также использовать и многомерные массивы. В отличие от списков, с массивами могут быть использованы запятые в скобках. Ниже приведен пример работы с двумерным массивом, а именно, с матрицей:
Рисунок 3. Программа. Автор24 — интернет-биржа студенческих работ
Array slícing может работать с многомерными массивами так же, как и с одномерными, используя каждый срез в качестве фильтра для установленного измерения. Следует использовать двоеточие ":" в измерении для того, чтобы указать использование всех элементов этого измерения:
Рисунок 4. Программа. Автор24 — интернет-биржа студенческих работ
Метод shape служит для возврата количества строк и столбцов в матрице:
$>>>$ a.shape
(2, 3)
Метод dtype способен возвратить тип переменных, которые хранятся в массиве:
$>>>$ a.dtype
dtype('float64')
Здесь float64 является числовым типом данных в numpy, который применяется для сохранения вещественных чисел двойной точности, аналогично float в Python.
Метод len служит для возврата длины первого измерения (оси):
a = np.array([[1, 2, 3], [4, 5, 6]], float)
$>>>$ len(a)
2
Метод ín применяется для проверки присутствия элемента в массиве:
$>>>$ a = np.array([[1, 2, 3], [4, 5, 6]], float)
$>>>$ 2 ín a
True
$>>>$ 0 ín a
False
Массивы могут быть переформированы с помощью метода, который способен задавать новые многомерные массивы. Далее покажем пример переформатирования одномерного массива, состоящего из десяти элементов, в двумерный массив, имеющий в своем составе пять строк и два столбца:
$>>>$ a = np.array(range(10), float)
$>>>$ a
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
$>>>$ a = a.reshape((5, 2))
$>>>$ a
array([[ 0., 1.],
[ 2., 3.],
[ 4., 5.],
[ 6., 7.],
[ 8., 9.]])
$>>>$ a.shape
(5, 2)
Следует обратить внимание, что метод reshape просто формирует новый массив, а не занимается модификацией исходного массива.
Необходимо также подчеркнуть, что связывание имен в Python может работать и с массивами тоже. Метод copy следует использовать для формирования копии имеющегося массива в памяти, как показано в примере ниже:
$>>>$ a = np.array([1, 2, 3], float)
$>>>$ b = a
$>>>$ c = a.copy()
$>>>$ a[0] = 0
$>>>$ a
array([0., 2., 3.])
$>>>$ b
array([0., 2., 3.])
$>>>$ c
array([1., 2., 3.])
Списки также могут быть созданы на основе массивов:
$>>>$ a = np.array([1, 2, 3], float)
$>>>$ a.tolíst()
[1.0, 2.0, 3.0]
$>>>$ líst(a)
[1.0, 2.0, 3.0]
Имеется также возможность преобразования массива в бинарную строку, для чего следует использовать метод tostríng. А, для того чтобы выполнить обратное преобразование, следует использовать метод fromstríng. Такие операции часто бывают полезными, если требуется сохранить большой объем данных в файлах, которые можно использовать в дальнейших операциях. Ниже приведен пример.
Рисунок 5. Программа. Автор24 — интернет-биржа студенческих работ
Заполнить массив одинаковыми значениями можно с помощью программы, приведенной ниже.
Рисунок 6. Программа. Автор24 — интернет-биржа студенческих работ
Имеется также возможность транспонирования массивов, причем это ведет к созданию нового массива:
Рисунок 7. Программа. Автор24 — интернет-биржа студенческих работ