Рубрики
Без рубрики

Python Scipy Tutorial

Scipy Учебное пособие, Python Scipy, Установка Scipy Library, Python Scipy Download, Scipy Plate, Scipy Numpy, Scipy Пример, Scipy Polynomials, Scipy Linear Algebra Пример, Scipy Integrate, Scipy Furnier Ervances, Scipy Специальные функции, Scipy Downloading.

Автор оригинала: Pankaj Kumar.

Библиотека Scipy Python – это набор удобных функций, созданных на Numpy и математических алгоритмах.

Python Scipy

  • В настоящее время Python Scipy Library поддерживает интеграцию, оптимизацию градиента, специальные функции, обыкновенные решатели дифференциального уравнения, параллельные инструменты программирования и многие другие; Другими словами, мы можем сказать, что, если что-то там в общем учебнике численного вычисления, есть высокие шансы, которые вы найдете его реализации в Scipy.
  • Интерактивный сеанс с Scipy – это в основном среда обработки данных и системно-прототипирование, такая же, как Matlab, Octave, Scilab или R-лаборатория.
  • Scipy – это проект с открытым исходным кодом, выпущенный под лицензией BSD.

Почему Scipy?

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

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

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

Установите Scipy Library

Мы обсудим некоторые основные функции и важные особенности Scipy, но до установки Scipy. Мы можем установить Scipy Packages, просто используя Пип , запустите следующую команду в терминале (Добавить Sudo Если вам нужно):

pip install scipy

Чтобы установить этот пакет с помощью Conda Run:

conda install -c anaconda scipy

Импортируя Scipy Library

Чтобы начать использовать Scipy в наших проектах Python, мы просто импортируем Scipy AS:

import scipy

Взаимодействие с numpy.

Как мы уже знаем, Scipy построен на Numpy, поэтому для всех основных нужд мы можем использовать сам функции Numpy:

import numpy

Функции от numpy и numpy.lib.cscimath Также содержатся в Scipy, но рекомендуется использовать их напрямую и не проходить через Scipy в этом случае.

Работа с полиномами

В Scipy есть два способа, которыми мы можем иметь дело с 1D полиномами. Первый использует класс Poly1d Отказ Этот класс принимает коэффициенты или корни для инициализации и образует полиномиальный объект. Когда мы распечатаем этот объект, мы увидим, что он печатает, как полиномиальный. Давайте посмотрим на пример код:

from numpy import poly1d

# We'll use some functions from numpy remember!!
# Creating a simple polynomial object using coefficients
somePolynomial = poly1d([1,2,3])

# Printing the result
# Notice how easy it is to read the polynomial this way
print(somePolynomial)

# Let's perform some manipulations
print("\nSquaring the polynomial: \n")
print(somePolynomial* somePolynomial)

#How about integration, we just have to call a function
# We just have to pass a constant say 3
print("\nIntegrating the polynomial: \n")
print(somePolynomial.integ(k=3))

#We can also find derivatives in similar way
print("\nFinding derivative of the polynomial: \n")
print(somePolynomial.deriv())

# We can also solve the polynomial for some value, 
# let's try to solve it for 2
print("\nSolving the polynomial for 2: \n")
print(somePolynomial(2))

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

Другой способ обрабатывать многочлен – использовать массив коэффициентов. Существуют функции для выполнения операций на полиномах, представленных в виде последовательностей, первый метод выглядит намного проще в использовании и дает производитель читабельной способ, поэтому я предпочитаю сначала для экземпляра.

Scipy пример – линейная алгебра

Scipy обладает очень быстрыми способностями линейной алгебры, так как он построен с использованием библиотек Atlas Papack и BLAS. Библиотеки даже доступны для использования, если вы хотите больше скорости, но вы должны глубоко копать в этом случае.

Все процедуры линейной алгебры в Scipy принимают объект, который может быть преобразован в 2D-массив, а выход имеет тот же тип.

Давайте посмотрим на подпрограмму линейной алгебры с помощью примера. Мы постараемся решить линейную систему алгебры, которую можно легко сделать с помощью Scipy Command lineg.solve Отказ

Этот метод ожидает входной матрицы и правой части вектора:

# Import required modules/ libraries
import numpy as np
from scipy import linalg

# We are trying to solve a linear algebra system which can be given as:
#               1x + 2y =5
#               3x + 4y =6

# Create input array
A= np.array([[1,2],[3,4]])

# Solution Array
B= np.array([[5],[6]])

# Solve the linear algebra
X= linalg.solve(A,B)

# Print results
print(X)

# Checking Results
print("\n Checking results, following vector should be all zeros")
print(A.dot(X)-B)

Давайте запустим этот сценарий сейчас:

Scipy Integration

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

help(integrate)

Давайте попробуем интегрировать лямбда в сценарии:

# Import required packages
from scipy import integrate

# Using quad as we can see in list quad is used for simple integration
# arg1: A lambda function which returns x squared for every x
# We'll be integrating this function
# arg2: lower limit
# arg3: upper limit
result= integrate.quad(lambda x: x**2, 0,3)
print(result)

Опять же, мы добавили достаточно комментариев, чтобы код был максимально понятен. Давайте запустим это сейчас:

Второй элемент в результате здесь возможен ошибка в результате, мы можем игнорировать его сейчас.

Scipy преобразования Фурье

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

Давайте посмотрим на простой пример преобразования Фурье. Мы будем построить сумму двух синий:

# Import Fast Fourier Transformation requirements
from scipy.fftpack import fft
import numpy as np

# Number of sample points
N = 600

# sample spacing
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N//2)

# matplotlib for plotting purposes
import matplotlib.pyplot as plt
plt.plot(xf, 2.0/N * np.abs(yf[0:N//2]))
plt.grid()
plt.show()

Выход должен быть похож на это:

Не к удивлению, Матплотлиб нарисовал график.

Scipy специальные функции

Специальный подпакет Scipy имеет определения многочисленных функций математической физики. Доступные функции включают Airy, Bessel, Beta, Elliptic, Gamma, гипергеометрические, кельвин, матье, параболический цилиндр, сфероидальную волну и Struve. Давайте посмотрим на функцию Бесселя.

Функции Бесселя – это семейство решений дифференциального уравнения Бесселя с реальным или сложным порядком альфа.

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

# Import special package
from scipy import special
import numpy as np
def drumhead_height(n, k, distance, angle, t):
    kth_zero = special.jn_zeros(n, k)[-1]
    return np.cos(t) * np.cos(n*angle) * special.jn(n, distance*kth_zero)
theta = np.r_[0:2*np.pi:50j]
radius = np.r_[0:1:50j]
x = np.array([r * np.cos(theta) for r in radius])
y = np.array([r * np.sin(theta) for r in radius])
z = np.array([drumhead_height(1, 1, r, theta, 0.5) for r in radius])

# Plot the results for visualization
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=cm.jet)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

Код на рабочих участках следующий график:

Некоторые функции, такие как функция двоичных энтропий, функция шага Hebside и функция рампы, просты для реализации с помощью существующих функций Numpy и Scipy и, таким образом, не включены в этот пакет.

Резюме

В этом посте мы обнаружили, что библиотека Scipy Python для легких и эффективных математических операций.

Мы узнали, что это огромная библиотека, используемая для разработки научных приложений, и, где следует позаботиться о сложных и сложных математических операциях, как в машинном обучении/глубоком обучении. Мы также посмотрели на то, как Scipy Package помогает нам выполнять различные математические операции.

Ссылка: Официальный веб-сайт