Функции, доступные в специальном пакете, являются универсальными функциями, которые следуют за широковещательной передачей и автоматическим зацикливанием массива.
Давайте посмотрим на некоторые из наиболее часто используемых специальных функций —
- Кубическая корневая функция
- Экспоненциальная функция
- Экспоненциальная функция относительной погрешности
- Экспоненциальная функция логарифмической суммы
- Функция Ламберта
- Функция перестановок и комбинаций
- Гамма-функция
Давайте теперь поймем каждую из этих функций вкратце.
Кубическая корневая функция
Синтаксис этой кубической корневой функции — scipy.special.cbrt (x). Это извлечет поэлементный кубический корень из x .
Давайте рассмотрим следующий пример.
from scipy.special import cbrt res = cbrt([10, 9, 0.1254, 234]) print res
Вышеуказанная программа сгенерирует следующий вывод.
[ 2.15443469 2.08008382 0.50053277 6.16224015]
Экспоненциальная функция
Синтаксис экспоненциальной функции — scipy.special.exp10 (x). Это будет вычислять 10 ** х поэлементно.
Давайте рассмотрим следующий пример.
from scipy.special import exp10 res = exp10([2, 9]) print res
Вышеуказанная программа сгенерирует следующий вывод.
[1.00000000e+02 1.00000000e+09]
Экспоненциальная функция относительной погрешности
Синтаксис этой функции — scipy.special.exprel (x). Он генерирует экспоненциальную относительную ошибку (exp (x) — 1) / x.
Когда x близок к нулю, exp (x) близок к 1, поэтому численный расчет exp (x) — 1 может пострадать от катастрофической потери точности. Затем осуществляется exprel (x), чтобы избежать потери точности, которая возникает, когда x близок к нулю.
Давайте рассмотрим следующий пример.
from scipy.special import exprel res = exprel([-0.25, -0.1, 0, 0.1, 0.25]) print res
Вышеуказанная программа сгенерирует следующий вывод.
[0.88479687 0.95162582 1. 1.05170918 1.13610167]
Экспоненциальная функция логарифмической суммы
Синтаксис этой функции — scipy.special.logsumexp (x). Это помогает вычислить лог суммы экспонент входных элементов.
Давайте рассмотрим следующий пример.
from scipy.special import logsumexp import numpy as np a = np.arange(10) res = logsumexp(a) print res
Вышеуказанная программа сгенерирует следующий вывод.
9.45862974443
Функция Ламберта
Синтаксис этой функции — scipy.special.lambertw (x). Он также называется W-функцией Ламберта. Функция W Ламберта W (z) определяется как обратная функция от w * exp (w). Другими словами, значение W (z) таково, что z = W (z) * exp (W (z)) для любого комплексного числа z.
W-функция Ламберта — это многозначная функция с бесконечным числом ветвей. Каждая ветвь дает отдельное решение уравнения z = w exp (w). Здесь ветви индексируются целым числом k.
Давайте рассмотрим следующий пример. Здесь W-функция Ламберта является обратной к w exp (w).
from scipy.special import lambertw w = lambertw(1) print w print w * np.exp(w)
Вышеуказанная программа сгенерирует следующий вывод.
(0.56714329041+0j) (1+0j)
Перестановки и комбинации
Давайте обсудим перестановки и комбинации отдельно для их ясного понимания.
Комбинации . Синтаксис функции комбинаций — scipy.special.comb (N, k). Давайте рассмотрим следующий пример —
from scipy.special import comb res = comb(10, 3, exact = False,repetition=True) print res
Вышеуказанная программа сгенерирует следующий вывод.
220.0
Примечание. Аргументы массива принимаются только для точного = ложного случая. Если k> N, N <0 или k <0, то возвращается 0.
Перестановки . Синтаксис функции комбинаций — scipy.special.perm (N, k). Перестановки из N вещей, взятых k за раз, то есть, k-перестановок из N. Это также известно как «частичные перестановки».
Давайте рассмотрим следующий пример.
from scipy.special import perm res = perm(10, 3, exact = True) print res
Вышеуказанная программа сгенерирует следующий вывод.
720
Гамма-функция
Гамма-функцию часто называют обобщенным факториалом, поскольку z * gamma (z) = gamma (z + 1) и gamma (n + 1) = n !, для натурального числа ‘n’.
Синтаксис функции комбинаций — scipy.special.gamma (x). Перестановки из N вещей, взятых k за раз, то есть, k-перестановок из N. Это также известно как «частичные перестановки».
Синтаксис функции комбинаций — scipy.special.gamma (x). Перестановки из N вещей, взятых k за раз, то есть, k-перестановок из N. Это также известно как «частичные перестановки».
from scipy.special import gamma res = gamma([0, 0.5, 1, 5]) print res
Вышеуказанная программа сгенерирует следующий вывод.