Учебники

SciPy — Специальный пакет

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

Давайте посмотрим на некоторые из наиболее часто используемых специальных функций —

  • Кубическая корневая функция
  • Экспоненциальная функция
  • Экспоненциальная функция относительной погрешности
  • Экспоненциальная функция логарифмической суммы
  • Функция Ламберта
  • Функция перестановок и комбинаций
  • Гамма-функция

Давайте теперь поймем каждую из этих функций вкратце.

Кубическая корневая функция

Синтаксис этой кубической корневой функции — 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

Вышеуказанная программа сгенерирует следующий вывод.