Каждый одномерный дистрибутив имеет свой собственный подкласс, как описано в следующей таблице:
Старший
Класс и описание
1
Универсальный непрерывный класс случайных величин, предназначенный для подклассов
Общий класс дискретных случайных величин, предназначенный для подклассов
Создает распределение, заданное гистограммой
Универсальный непрерывный класс случайных величин, предназначенный для подклассов
Общий класс дискретных случайных величин, предназначенный для подклассов
Создает распределение, заданное гистограммой
Нормальная непрерывная случайная величина
Распределение вероятностей, при котором случайная величина X может принимать любое значение, является непрерывной случайной величиной. Ключевое слово location (loc) указывает среднее. Ключевое слово scale (scale) определяет стандартное отклонение.
Чтобы вычислить CDF в нескольких точках, мы можем передать список или массив NumPy. Давайте рассмотрим следующий пример.
Вышеуказанная программа сгенерирует следующий вывод.
Чтобы найти медиану распределения, мы можем использовать функцию процентной точки (PPF), которая является обратной к CDF. Давайте разберемся, используя следующий пример.
Вышеуказанная программа сгенерирует следующий вывод.
Чтобы сгенерировать последовательность случайных переменных, мы должны использовать аргумент размера ключевого слова, который показан в следующем примере.
Вышеуказанная программа сгенерирует следующий вывод.
Вышеуказанный вывод не воспроизводим. Для генерации одинаковых случайных чисел используйте функцию seed.
Равномерное распределение
Равномерное распределение может быть сгенерировано с использованием равномерной функции. Давайте рассмотрим следующий пример.
Вышеуказанная программа сгенерирует следующий вывод.
Построить дискретное распределение
Давайте сгенерируем случайную выборку и сравним наблюдаемые частоты с вероятностями.
Биномиальное распределение
Вышеуказанная программа сгенерирует следующий вывод.
Описательная статистика
Старший
Описание функции
1
Вычисляет несколько описательной статистики переданного массива
Руководство по SciPy: что это, и как ее использовать
Математика — это масса понятий, которые являются одновременно важными и сложными. Для работы с ними в Python есть библиотека SciPy. В этом материале вы познакомитесь с ее функциями на примерах.
Что такое SciPy?
SciPy — это библиотека Python с открытым исходным кодом, предназначенная для решения научных и математических проблем. Она построена на базе NumPy и позволяет управлять данными, а также визуализировать их с помощью разных высокоуровневых команд. Если вы импортируете SciPy, то NumPy отдельно импортировать не нужно.
NumPy vs SciPy
И NumPy, и SciPy являются библиотеками Python, которые используются для математического и числового анализов. NumPy содержит данные массивов и операции, такие как сортировка, индексация, а SciPy состоит из числового кода. И хотя в NumPy есть функции для работы с линейной алгеброй, преобразованиями Фурье и т. д., в SciPy они представлены в полном виде вместе с массой других. А для полноценного научного анализа в Python нужно устанавливать и NumPy, и SciPy, поскольку последняя построена на базе NumPy.
Пакеты в SciPy
В SciPy есть набор пакетов для разных научных вычислений:
Название
Описание
cluster
Алгоритмы кластерного анализа
constants
Физические и математические константы
fftpack
Быстрое преобразование Фурье
integrate
Решения интегральных и обычных дифференциальных уравнений
interpolate
Интерполяция и сглаживание сплайнов
io
Ввод и вывод
linalg
Линейная алгебра
ndimage
N-размерная обработка изображений
odr
Метод ортогональных расстояний
optimize
Оптимизация и численное решение уравнений
signal
Обработка сигналов
sparse
Разреженные матрицы
spatial
Разреженные структуры данных и алгоритмы
special
Специальные функции
stats
Статистические распределения и функции
Подробное описание можно найти в официальной документации.
Эти пакеты нужно импортировать для использования библиотеки. Например:
Прежде чем рассматривать каждую функцию в подробностях, разберемся с теми из них, которые являются одинаковыми в NumPy и SciPy.
Базовые функции
Взаимодействие с NumPy
help():
Функция help() подойдет для получения информации о любой функции. Ее можно использовать двумя способами:
Вот пример для обоих:
info():
Эта функция возвращает информацию о конкретных функциях, модулях и так далее.
source():
Исходный код можно получить только для тех объектов, которые были написаны на Python. Функция не вернет ничего важного, если методы или объекты были написаны, например, на C. Синтаксис простой:
Специальные функции
Экспоненциальные и тригонометрические функции
Набор специальных функций SciPy включает такие, с помощью которых можно искать экспоненты и решать тригонометрические задачи.
Есть и масса других функций из SciPy, с которым стоит познакомиться.
Интегральные функции
Есть и функции для решения интегралов. В их числе как обычные дифференциальные интеграторы, так и методы трапеций.
А здесь она внедрена в пределах a и b (могут быть бесконечностями).
В этом примере функция a находится в пределах 0 и 1. После выполнения вывод будет такой:
Двойные интегральные функции
Функции оптимизации
В scipy.optimize есть часто используемые алгоритмы оптимизации:
Функция Розенброка
Функция Розенброка ( rosen ) — это тестовая проблема для оптимизационных алгоритмов, основанных на градиентах. В SciPy она определена следующим образом:
Nelder-Mead
Это числовой метод, который часто используется для поиска минимума/максимума функции в многомерном пространстве. В следующем примере метод использован вместе с алгоритмом Нелдера — Мида.
Функции интерполяции
В сфере числового анализа интерполяция — это построение новых точек данных на основе известных. Библиотека SciPy включает подпакет scipy.interpolate, состоящий из сплайновых функций и классов, одно- и многомерных интерполяционных классов и так далее.
Одномерная интерполяция
Вывод:
Многомерная интерполяция
При интерполяции на двумерную сетку функция использует массивы x, y и z для приближения функции f: «z = f(x, y)» и возвращает функцию, у которой вызываемый метод использует сплайновую интерполяцию для поиска значения новых точек.
Вывод:
Функции преобразования Фурье
Анализ Фурье — это метод, который помогает представлять функцию в виде суммы периодических компонентов и восстанавливать сигнал из них. Функции fft используются для получения дискретной трансформации Фурье реальной или комплексной последовательности.
Функции обработки сигналов
Обработка сигналов — это область анализа, модификации и синтеза сигналов: звуков, изображений и т. д. SciPy предоставляет некоторые функции, с помощью которых можно проектировать, фильтровать и интерполировать одномерные и двумерные данные.
Фильтрация:
a — N-мерный массив с входящими данными
domain — массив масок с тем же количеством размерностей, что и у массива a
rank — неотрицательное число, которое выбирает элементы из отсортированного списка (0, 1…)
Сигналы
Вывод:
Линейная алгебра
Линейная алгебра работает с линейными уравнениями и их представлениями с помощью векторных пространств и матриц. SciPy построена на базе библиотек ATLAS LAPACK и BLAS и является очень быстрой в сфере решения проблем, связанных с линейной алгеброй. В дополнение к функциям из numpy.linalg scipy.linalg также предоставляет набор продвинутых функций. Если numpy.linalg не используется вместе с ATLAS LAPACK и BLAS, то scipy.linalg работает намного быстрее.
Нахождение обратной матрицы
Нахождение определителей
Значение, полученное арифметическим путем из коэффициентов матрицы является определителем квадратной матрицы. В SciPy это делается с помощью функции det с таким синтаксисом:
det(a, overwrite_a=False, check_finite=True)
a — (M, M) — это квадратная матрица
overwrite_a(bool, optional) — разрешает перезаписывать данные
check_finite(bool, optional) — для проверки состоит ли матрица только из конечных чисел
Разреженные собственные значения
Интерфейс eigs позволяет находить собственные значения реальных или комплексных несимметричных квадратных матриц, а eigsh содержит интерфейсы реальных симметричных или комплексных Эрмитовых матриц.
Функция eigh решает обобщенную проблему собственного значения для комплексной Эрмитовой или реально симметричной матрицы
Разреженные структуры данных и алгоритмы
Разреженные данные состоят из объектов, которые в свою очередь состоят из линий, точек, поверхностей и так далее. Пакет scipy.spatial из SciPy может вычислять диаграммы Вороного, триангуляцию и другое с помощью библиотеки Qhull. Он также включает реализации KDTree для точечных запросов ближайших соседей.
Триангуляции Делоне
С математической точки зрения триангуляции Делоне для набора дискретных точек на плоской поверхности — это триангуляция, где ни одна точка из представленных не расположена внутри описанной окружности любого треугольника.
Вывод:
Функции многомерной обработки изображений
Обработка изображений — это выполнение операций над изображением по получению информации или улучшенной копии этого изображения из оригинала. Пакет scipy.ndimage состоит из нескольких функций обработки и анализа изображений, которые нужны для работы с массивами с произвольной размерностью.
Свертка и корреляция
В SciPy есть несколько функций для свертки и корреляции изображений.
Файловый ввод/вывод
Пакет scipy.io предоставляет несколько функций, которые помогают управлять файлами в разных форматах, включая MATLAB, файлы IDL, Matrix Market и другие.
Для использования его нужно сначала импортировать:
This module contains a large number of probability distributions, summary and frequency statistics, correlation functions and statistical tests, masked statistics, kernel density estimation, quasi-Monte Carlo functionality, and more.
Statistics is a very large area, and there are topics that are out of scope for SciPy and are covered by other packages. Some of the most important ones are:
Pandas: tabular data, time series functionality, interfaces to other statistical languages.
scikit-learn: classification, regression, model selection.
Seaborn: statistical data visualization.
rpy2: Python to R bridge.
Probability distributionsВ¶
Each univariate distribution is an instance of a subclass of rv_continuous ( rv_discrete for discrete distributions):
A generic continuous random variable class meant for subclassing.
rv_discrete ([a, b, name, badvalue, …])
A generic discrete random variable class meant for subclassing.
Generates a distribution given by a histogram.
Continuous distributionsВ¶
An alpha continuous random variable.
An anglit continuous random variable.
An arcsine continuous random variable.
A beta continuous random variable.
A beta prime continuous random variable.
A Bradford continuous random variable.
A Burr (Type III) continuous random variable.
A Burr (Type XII) continuous random variable.
A Cauchy continuous random variable.
A chi continuous random variable.
A chi-squared continuous random variable.
A cosine continuous random variable.
A double gamma continuous random variable.
A double Weibull continuous random variable.
An Erlang continuous random variable.
An exponential continuous random variable.
An exponentially modified Normal continuous random variable.
An exponentiated Weibull continuous random variable.
An exponential power continuous random variable.
An F continuous random variable.
A fatigue-life (Birnbaum-Saunders) continuous random variable.
A Fisk continuous random variable.
A folded Cauchy continuous random variable.
A folded normal continuous random variable.
A generalized logistic continuous random variable.
A generalized normal continuous random variable.
A generalized Pareto continuous random variable.
A generalized exponential continuous random variable.
A generalized extreme value continuous random variable.
A Gauss hypergeometric continuous random variable.
A gamma continuous random variable.
A generalized gamma continuous random variable.
A generalized half-logistic continuous random variable.
A generalized hyperbolic continuous random variable.
A Generalized Inverse Gaussian continuous random variable.
A Gilbrat continuous random variable.
A Gompertz (or truncated Gumbel) continuous random variable.
A right-skewed Gumbel continuous random variable.
A left-skewed Gumbel continuous random variable.
A Half-Cauchy continuous random variable.
A half-logistic continuous random variable.
A half-normal continuous random variable.
The upper half of a generalized normal continuous random variable.
A hyperbolic secant continuous random variable.
An inverted gamma continuous random variable.
An inverse Gaussian continuous random variable.
An inverted Weibull continuous random variable.
A Johnson SB continuous random variable.
A Johnson SU continuous random variable.
Kappa 4 parameter distribution.
Kappa 3 parameter distribution.
Kolmogorov-Smirnov one-sided test statistic distribution.
Kolmogorov-Smirnov two-sided test statistic distribution.
Limiting distribution of scaled Kolmogorov-Smirnov two-sided test statistic.
A Laplace continuous random variable.
An asymmetric Laplace continuous random variable.
A Levy continuous random variable.
A left-skewed Levy continuous random variable.
A Levy-stable continuous random variable.
A logistic (or Sech-squared) continuous random variable.
A log gamma continuous random variable.
A log-Laplace continuous random variable.
A lognormal continuous random variable.
A loguniform or reciprocal continuous random variable.
A Lomax (Pareto of the second kind) continuous random variable.
A Maxwell continuous random variable.
A Mielke Beta-Kappa / Dagum continuous random variable.
A Moyal continuous random variable.
A Nakagami continuous random variable.
A non-central chi-squared continuous random variable.
A non-central F distribution continuous random variable.
A non-central Student’s t continuous random variable.
A normal continuous random variable.
A Normal Inverse Gaussian continuous random variable.
A Pareto continuous random variable.
A pearson type III continuous random variable.
A power-function continuous random variable.
A power log-normal continuous random variable.
A power normal continuous random variable.
An R-distributed (symmetric beta) continuous random variable.
A Rayleigh continuous random variable.
A Rice continuous random variable.
A reciprocal inverse Gaussian continuous random variable.
A semicircular continuous random variable.
A skewed Cauchy random variable.
A skew-normal random variable.
A studentized range continuous random variable.
A Student’s t continuous random variable.
A trapezoidal continuous random variable.
A triangular continuous random variable.
A truncated exponential continuous random variable.
A truncated normal continuous random variable.
A Tukey-Lamdba continuous random variable.
A uniform continuous random variable.
A Von Mises continuous random variable.
A Von Mises continuous random variable.
A Wald continuous random variable.
Weibull minimum continuous random variable.
Weibull maximum continuous random variable.
A wrapped Cauchy continuous random variable.
Multivariate distributionsВ¶
A multivariate normal random variable.
A matrix normal random variable.
A Dirichlet random variable.
A Wishart random variable.
An inverse Wishart random variable.
A multinomial random variable.
A matrix-valued SO(N) random variable.
A matrix-valued O(N) random variable.
A matrix-valued U(N) random variable.
A random correlation matrix.
A multivariate t-distributed random variable.
A multivariate hypergeometric random variable.
Discrete distributionsВ¶
A Bernoulli discrete random variable.
A beta-binomial discrete random variable.
A binomial discrete random variable.
A Boltzmann (Truncated Discrete Exponential) random variable.
A Laplacian discrete random variable.
A geometric discrete random variable.
A hypergeometric discrete random variable.
A Logarithmic (Log-Series, Series) discrete random variable.
A negative binomial discrete random variable.
A Fisher’s noncentral hypergeometric discrete random variable.
A Wallenius’ noncentral hypergeometric discrete random variable.
A negative hypergeometric discrete random variable.
A Planck discrete exponential random variable.
A Poisson discrete random variable.
A uniform discrete random variable.
A Skellam discrete random variable.
A Yule-Simon discrete random variable.
A Zipf (Zeta) discrete random variable.
A Zipfian discrete random variable.
An overview of statistical functions is given below. Many of these functions have a similar version in scipy.stats.mstats which work for masked arrays.
Summary statisticsВ¶
describe (a[,В axis,В ddof,В bias,В nan_policy])
Compute several descriptive statistics of the passed array.
gmean (a[,В axis,В dtype,В weights])
Compute the geometric mean along the specified axis.
Calculate the harmonic mean along the specified axis.