Введение
SciPy представляет собой совокупность математических алгоритмов и функций, построенных как расширение Numpy на Python. Он значительно расширяет возможности интерактивной сессии Python, предоставляя пользователю команды высокого уровня и классы для управления и визуализации данных. Со SciPy интерактивный сеанс Python становится средой обработки данных и системой прототипирования соперничающей с такими системами, как MATLAB, IDL, Octave, R-Lab, and SciLab.Дополнительным преимуществом базирования SciPy на Python является то, что он также является достаточно мощным языком программирования, используемый при разработке сложных программ и специализированных приложений. Научные приложения, так же получают выгоду от разработки дополнительных модулей в многочисленных нишах программного обеспечения разработчиками по всему миру. Все, начиная от параллельного программирования для веб до подпрограмм и классов баз данных доступны для программиста Python. Все эти возможности доступны в дополнение к математической библиотеке SciPy.
Этот учебник ознакомит начинающего пользователя SciPy с некоторыми из его наиболее важных особенностей. Она предполагает, что пользователь уже установил пакет SciPy. Некоторые общие объекты Python также предполагается, например, могут быть приобретены работая через учебник дистрибутива Python. Для получения дополнительной вводной помощи пользователю направляется к документации Numpy.
Для краткости и удобства, мы часто будем предполагать, что основные пакеты (NumPy, SciPy и Matplotlib) были импортированы как:
>>> import numpy as np
>>> import matplotlib as mpl
>>> import matplotlib.pyplot as plt
Это соглашения о виде импорта являются общими, принятыми после публичного обсуждения. Вы увидите эти условные обозначения, во всем исходном коде и документации NumPy и SciPy. В то время как, очевидно, от вас не требуются, следование этим соглашениям в собственном коде, хотя и настоятельно рекомендуется.
Структура SciPy
SciPy организовано в подпакеты, охватывающих различные научные вычислительные области. Они приведены в следующей таблице:
Подпакет
|
Описание
|
cluster
|
Алгоритмы кластеризации
|
constants
|
Физические и математические константы
|
fftpack
|
Подпрограммы быстрого преобразования Фурье
|
integrate
|
Интегрирование и решение обыкновенных дифференциальных уравнений
|
interpolate
|
Интерполяционные и сглаживающие сплайны
|
io
|
Ввод и вывод
|
linalg
|
Линейная алгебра
|
ndimage
|
обработка N-мернох изображений
|
odr
|
Мультиплексирование с ортогональным расстояние регрессии
|
optimize
|
Оптимизация и поиск корневых структур
|
signal
|
Обработка сигналов
|
sparse
|
Разреженные матрицы и связанные с ними процедуры
|
spatial
|
Пространственные структуры данных и алгоритмы
|
special
|
Специальные функции
|
stats
|
Статистические распределения и функции
|
weave
|
C/C ++ интеграция
|
>>> from scipy import linalg, optimize
Из-за повсеместности, некоторые из функций этих подпакетов также доступны в пространстве имен SciPy, чтобы облегчить их использование в интерактивных сессиях и программах. Кроме того, многие основные функции массивов из NumPy также доступны на верхнем уровне SciPy пакета. Прежде чем взглянуть на суб-пакеты по отдельности, мы сначала посмотрим на некоторые из этих общих функций.
Поиск документации
SciPy и NumPy имеют версии документации в HTML и PDF формате доступные на https://docs.scipy.org/~~pobj, которые охватывают практически все доступные функциональные возможности . Тем не менее, эта документация по-прежнему находится в стадии разработки и некоторые части могут быть неполными или отсутствовать. Поскольку мы являемся добровольной организацией и зависим от сообщества, все ваше участие от обратной связи до совершенствования документации и кода - приветствуется и активно поощряется.Документация языка Python используются в SciPy для он-лайн документации. Есть два способа читать их и получать помощь. Одним из них является команда help в Python в модуле pydoc. Ввод этой команды без аргументов (т.е. >>>help) запускает интерактивную справочную сессию , которая позволяет осуществлять поиск по ключевым словам и модулям, доступных для всего в Python. Во- вторых, выполнив команду help(obj) с объектом в качестве аргумента отображает подпись этого объекта, и его текст документации.
Метод help из pydoc является сложным, но использует страницы для отображения текста. Иногда это может мешать терминалу если вы работаете в пределах интерактивного сеанса. Numpy/scipy специализированная справочная система также доступна командой numpy.info . Строка подписи и документация для объекта, переданного в помощи команды печатаются на стандартный вывод (или в записываемый объект, переданный в качестве третьего аргумента). Второй аргумент numpy.info определяет максимальную длину строки для печати. Если в качестве аргумента передается модуль, то выводится список функций и классов, определенных в этом модуле. Например:
>>> np.info(optimize.fmin)
fmin(func, x0, args=(), xtol=0.0001, ftol=0.0001, maxiter=None, maxfun=None,
full_output=0, disp=1, retall=0, callback=None)
Minimize a function using the downhill simplex algorithm.
Parameters
----------
func : callable func(x,*args)
The objective function to be minimized.
x0 : ndarray
Initial guess.
args : tuple
Extra arguments passed to func, i.e. ``f(x,*args)``.
callback : callable
Called after each iteration, as callback(xk), where xk is the
current parameter vector.
Returns
-------
xopt : ndarray
Parameter that minimizes function.
fopt : float
Value of function at minimum: ``fopt = func(xopt)``.
iter : int
Number of iterations performed.
funcalls : int
Number of function calls made.
warnflag : int
1 : Maximum number of function evaluations made.
2 : Maximum number of iterations reached.
allvecs : list
Solution at each iteration.
Other parameters
----------------
xtol : float
Relative error in xopt acceptable for convergence.
ftol : number
Relative error in func(xopt) acceptable for convergence.
maxiter : int
Maximum number of iterations to perform.
maxfun : number
Maximum number of function evaluations to make.
full_output : bool
Set to True if fopt and warnflag outputs are desired.
disp : bool
Set to True to print convergence messages.
retall : bool
Set to True to return list of solutions at each iteration.
Notes
-----
Uses a Nelder-Mead simplex algorithm to find the minimum of function of
one or more variables.
Другая полезная команда source. В качестве аргумента она принимает функцию, написанную на Python и выводит исходной код этой функции. Это может быть полезно для изучения алгоритма или точного понимания того, что функция делает со своими аргументами. Также не забывайте о командной Python dir, которую можно использовать, для просмотра пространства имен модуля или пакета.
Далее >> "Базовые функции SciPy"
Комментариев нет :
Отправить комментарий