Наука о данных

Учебник Python SciPy

Учебник Python SciPy
В этом уроке мы увидим, как используется библиотека SciPy в Python и как она помогает нам работать с математическими уравнениями и алгоритмами в интерактивном режиме. Хорошая вещь в пакете SciPy Python заключается в том, что если мы хотим классы или создавать веб-страницы, SciPy полностью совместим с системой в целом и может обеспечить бесшовную интеграцию.

В виде SciPy с открытым исходным кодом, у него очень активное и яркое сообщество разработчиков, благодаря которому существует огромное количество модулей для огромного количества научных приложений и вычислений, доступных с SciPy. Вот некоторые из сложных математических операций, которые можно выполнять с помощью SciPy:

SciPy можно сравнить с большинством командных и стандартных библиотек, таких как библиотека GSL для C ++ и Matlab. Поскольку SciPy построен поверх пакета NumPy, эти два пакета также могут быть полностью интегрированы. Если вы можете придумать математическую операцию, которую необходимо выполнить, убедитесь, что вы проверили библиотеку SciPy, прежде чем реализовывать этот модуль самостоятельно, потому что в большинстве случаев SciPy уже полностью реализовал все операции для вас.

Установить библиотеку SciPy

Давайте установим библиотеку SciPy, прежде чем мы перейдем к реальным примерам и концепциям. Есть два способа установить этот пакет. Первый включает использование диспетчера пакетов Python, pip:

pip install scipy

Второй способ относится к Anaconda, мы можем установить пакет как:

conda install -c anaconda scipy

После установки библиотеки мы можем импортировать ее как:

импортный scipy

Наконец, поскольку мы также будем использовать NumPy (рекомендуется, чтобы для всех операций NumPy мы использовали NumPy напрямую, а не через пакет SciPy):

import numpy

Возможно, что в некоторых случаях нам также захочется отобразить наши результаты, для чего мы будем использовать библиотеку Matplotlib. Выполните следующий импорт для этой библиотеки:

импортировать matplotlib

Я буду использовать менеджер Anaconda для всех примеров в этом уроке. Я запущу Jupyter Notebook для того же:

Теперь, когда мы готовы со всеми операторами импорта для написания некоторого кода, давайте начнем погружаться в пакет SciPy с некоторыми практическими примерами.

Работа с полиномиальными уравнениями

Мы начнем с рассмотрения простых полиномиальных уравнений. Есть два способа интегрировать полиномиальные функции в нашу программу. Мы можем использовать poly1d класс, который использует коэффициенты или корни многочлена для инициализации многочлена. Давайте посмотрим на пример:

из numpy import poly1d
first_polynomial = poly1d ([3, 4, 7])
печать (первое_полином)

Когда мы запустим этот пример, мы увидим следующий результат:

Ясно, что полиномиальное представление уравнения печатается как результат, так что результат довольно легко понять. Мы также можем выполнять различные операции с этим многочленом, например возводить его в квадрат, находить его производную или даже решать его для значения x. Попробуем сделать все это в следующем примере:

print ("Полиномиальный квадрат: \ n")
print (первый_полином * первый_полином)
print ("Производная многочлена: \ n")
print (first_polynomial.производная ())
print ("Решение многочлена: \ n")
печать (первый_полином (3))

Когда мы запустим этот пример, мы увидим следующий результат:

Когда я подумал, что это все, что мы можем сделать с помощью SciPy, я вспомнил, что мы также можем интегрировать полином. Давайте запустим последний пример с полиномами:

print ("Интегрирование полинома: \ n")
print (first_polynomial.интег (1))

Передаваемое целое число сообщает пакету, сколько раз нужно интегрировать полином:

Мы можем просто передать другое целое число, которое сообщает пакету, сколько раз нужно интегрировать этот многочлен.

Решение линейных уравнений

С помощью SciPy можно даже решать линейные уравнения и находить их корни, если они существуют. Для решения линейных уравнений мы представляем набор уравнений в виде массивов NumPy, а их решение - в виде отдельных массивов NumPy. Давайте визуализируем это на примере, где мы делаем то же самое и используем линалг пакет, чтобы найти корни уравнений, вот уравнения, которые мы будем решать:

1x + 5y = 6
3х + 7у = 9

Решим приведенные выше уравнения:

от scipy import linalg
уравнение = np.массив ([[1, 5], [3, 7]])
решение = np.массив ([[6], [9]])
корни = linalg.решить (уравнение, решение)
print ("Нашел корни:")
печать (корни)
print ("\ n Точечное произведение должно быть равно нулю, если решения верны:")
печать (уравнение.точка (корни) - решение)

Когда мы запустим вышеуказанную программу, мы увидим, что уравнение скалярного произведения дает нулевой результат, что означает, что корни, найденные программой, были правильными:

Преобразования Фурье с помощью SciPy

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

Давайте посмотрим на простой пример преобразования Фурье, где мы строим сумму двух косинусов с помощью библиотеки Matplotlib:

из scipy.fftpack import fft
# Количество точек выборки
N = 500
# образец интервала
Т = 1.0/800.0
х = np.linspace (0.0, Н * Т, Н)
y = np.cos (50.0 * 2.0 * нп.пи * х) + 0.5 * нп.cos (80.0 * 2.0 * нп.пи * х)
yf = fft (y)
xf = np.linspace (0.0, 1.0 / (2.0 * T), N // 2)
# matplotlib для построения графиков
импортировать matplotlib.pyplot как plt
plt.сюжет (xf, 2.0 / N * np.abs (yf [0: N // 2]))
plt.title ('Информация')
plt.ylabel ('ось Y')
plt.xlabel ('ось X')
plt.сетка()
plt.показывать()

Здесь мы начали с построения образца пространства и уравнения косинуса, которое затем преобразовали и построили. Вот результат работы вышеуказанной программы:

Это один из хороших примеров, когда мы видим, как SciPy используется в сложном математическом уравнении, чтобы легко визуализировать вещи.

Векторы и матрица с SciPy

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

Так же, как мы рассматривали решение линейных уравнений с помощью SciPy, мы можем представить векторы с помощью нп.множество() функции. Начнем с построения матрицы:

my_matrix = np.матрица (np.случайный.случайный ((3, 3)))
печать (my_matrix)

Вот результат приведенного выше фрагмента:

Когда мы говорим о матрицах, мы всегда говорим о собственных значениях и собственных векторах. Проще говоря, собственные векторы - это векторы, которые при умножении на матрицу не меняют своего направления, в отличие от большинства векторов. Это означает, что даже когда вы умножаете собственные векторы на матрицу, существует значение (или собственное значение), которое является одним из факторов умножения. Это означает:

Ах = λx.

В приведенном выше уравнении A - матрица, λ - собственное значение, а x - вектор. Напишем простой фрагмент кода, чтобы найти собственные значения для данного вектора:

la, vector = linalg.eig (my_matrix)
печать (вектор [:, 0])
печать (вектор [:, 1])
печать (линалг.eigval (my_matrix))

Когда мы запустим этот пример, мы увидим следующий результат:

Вычисление определителя матрицы

Следующая операция, которую мы выполним с SciPy, - это вычисление определителя 2-мерной матрицы. Мы будем повторно использовать матрицу, которую мы использовали в последнем фрагменте кода, здесь:

линалг.det (my_matrix)

Когда мы запустим этот пример, мы увидим следующий результат:

Заключение

В этом уроке мы рассмотрели множество хороших примеров, в которых SciPy может помочь нам, выполняя сложные математические вычисления за нас с помощью простого в использовании API и пакетов.

Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...
Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...
Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...