- Модуль Math в Python
- Синтаксис и подключение
- Константы модуля Math
- Список функций
- Теоретико-числовые функции и функции представления
- Степенные и логарифмические функции
- 5 самых полезных математических библиотек Python
- Math
- SymPy
- NumPy
- SciPy
- Pandas
- Заключение
- Математические библиотеки Python
- Python библиотеки для математики
- Библиотека Math в Python
Модуль Math в Python
Python библиотека math содержит наиболее применяемые математические функции и константы. Все вычисления происходят на множестве вещественных чисел.
Если вам нужен соответствующий аппарат для комплексного исчисления, модуль math не подойдёт. Используйте вместо него cmath . Там вы найдёте комплексные версии большинства популярных math -функций.
Синтаксис и подключение
Чтобы подключить модуль, необходимо в начале программы прописать следующую инструкцию:
Теперь с помощью точечной нотации можно обращаться к константам и вызывать функции этой библиотеки. Например, так:
Константы модуля Math
math.pi Представление математической константы π = 3.141592…. «Пи» — это отношение длины окружности к её диаметру.
math.e Число Эйлера или просто e . Иррациональное число, которое приблизительно равно 2,71828.
math.tau Число τ — это отношение длины окружности к её радиусу. Т.е
import math > print(math.tau) print(math.tau == 2 * math.pi) > True
math.inf Положительная бесконечность.
Для оперирования отрицательной бесконечно большой величиной, используйте -math.inf
Константа math.inf эквивалента выражению float(«inf») .
math.nan NaN означает — «не число».
Аналогичная запись: float(«nan») .
Список функций
Теоретико-числовые функции и функции представления
math.ceil() Функция округляет аргумент до большего целого числа.
math.comb(n, k) Число сочетаний из n по k . Показывает сколькими способами можно выбрать k объектов из набора, где находится n объектов. Формула:
Решим задачу : На столе лежат шесть рубинов. Сколько существует способов выбрать два из них?
💭 Можете подставить числа в формулу, и самостоятельно проверить правильность решения.
math.copysign() Функция принимает два аргумента. Возвращает первый аргумент, но со знаком второго.
math.fabs() Функция возвращает абсолютное значение аргумента:
math.factorial() Вычисление факториала. Входящее значение должно быть целочисленным и неотрицательным.
math.floor() Антагонист функции ceil() . Округляет число до ближайшего целого, но в меньшую сторону.
math.fmod(a, b) Считает остаток от деления a на b . Является аналогом оператора » % » с точностью до типа возвращаемого значения.
math.frexp(num) Возвращает кортеж из мантиссы и экспоненты аргумента. Формула:
, где M — мантисса, E — экспонента.
print(math.frexp(10)) > (0.625, 4) # проверим print(pow(2, 4) * 0.625) > 10.0
math.fsum() Вычисляет сумму элементов итерируемого объекта. Например, вот так она работает для списка:
summable_list = [1, 2, 3, 4, 5] print(math.fsum(summable_list)) > 15.0
math.gcd(a, b) Возвращает наибольший общий делитель a и b . НОД — это самое большое число, на которое a и b делятся без остатка.
a = 5 b = 15 print(math.gcd(a, b)) > 5
math.isclose(x, y) Функция возвращает True , если значения чисел x и y близки друг к другу, и False в ином случае. Помимо пары чисел принимает ещё два необязательных именованных аргумента:
- rel_tol — максимально допустимая разница между числами в процентах;
- abs_tol — минимально допустимая разница.
math.isfinite() Проверяет, является ли аргумент NaN , False или же бесконечностью. True , если не является, False — в противном случае.
norm = 3 inf = float(‘inf’) print(math.isfinite(norm)) > True print(math.isfinite(inf)) > False
math.isinf() True , если аргумент — положительная/отрицательная бесконечность. False — в любом другом случае.
not_inf = 42 inf = math.inf print(math.isinf(not_inf)) > False print(math.isinf(inf)) > True
math.isnan() Возврат True , если аргумент — не число ( nan ). Иначе — False .
not_nan = 0 nan = math.nan print(math.isnan(not_nan)) > False print(math.isnan(nan)) > True
math.isqrt() Возвращает целочисленный квадратный корень аргумента, округлённый вниз.
math.ldexp(x, i) Функция возвращает значение по формуле:
возвращаемое значение = x * (2 ** i) print(math.ldexp(3, 2)) > 12.0
math.modf() Результат работы modf() — это кортеж из двух значений:
math.perm(n, k) Возвращает число размещений из n по k . Формула:
Задача : Посчитать количество вариантов распределения трёх билетов на концерт Стаса Михайлова для пяти фанатов.
Целых 60 способов! Главное — не запутаться в них, и не пропустить концерт любимого исполнителя!
math.prod() Принимает итерируемый объект. Возвращает произведение элементов.
multiple_list = [2, 3, 4] print(math.prod(multiple_list)) > 24
math.remainder(m, n) Возвращает результат по формуле:
где x — ближайшее целое к выражению m/n число.
print(math.remainder(55, 6)) > 1.0 print(math.remainder(4, 6)) > -2.0
math.trunc() trunc() вернёт вам целую часть переданного в неё аргумента.
Степенные и логарифмические функции
math.exp(x) Возвращает e в степени x . Более точный аналог pow(math.e, x) .
print(math.exp(3)) > 20.085536923187668
math.expm1(x) Вычисляет значение выражения exp(x) — 1 и возвращает результат.
print(math.expm1(3)) > 19.085536923187668 print(math.expm1(3) == (math.exp(3) — 1)) > True
math.log() Функция работает, как с одним, так и с двумя параметрами .
1 аргумент: вернёт значение натурального логарифма (основание e ):
2 аргумента: вернёт значение логарифма по основанию, заданному во втором аргументе:
☝️ Помните, это читается, как простой вопрос: «в какую степень нужно возвести число 4 , чтобы получить 16 «. Ответ, очевидно, 2 . Функция log() с нами согласна.
math.log1p() Это натуральный логарифм от аргумента (1 + x) :
print(math.log(5) == math.log1p(4)) > True
math.log2() Логарифм по основанию 2 . Работает точнее, чем math.log(x, 2) .
math.log10() Логарифм по основанию 10 . Работает точнее, чем math.log(x, 10) .
math.pow(a, b) Функция выполняет возведение числа a в степень b и возвращает затем вещественный результат.
5 самых полезных математических библиотек Python
Математика в Python не ограничивается простыми выражениями. Существует множество полезных библиотек и модулей, способных поднять ваши вычисления на совершенно другой уровень. В этой статье мы познакомимся с пятью самыми полезными из них.
Math
Рано или поздно наступит момент, когда вам не хватит стандартных математических операторов в Python. Например, придется найти квадратный корень, логарифм или синус. В этом вам поможет модуль Math.
>>> import math >>> math.sqrt(17) 4.123105625617661 >>> math.sin(33) 0.9999118601072672 >>> math.log(15, 2) 3.9068905956085187
Помимо дополнительных математических функций, модуль содержит константы, такие как math.pi , math.e и бесконечность — math.inf . Функция math.isclose() поможет вам сравнивать числа с заданной точностью.
SymPy
SymPy — библиотека для работы с символьными вычислениями. С этим модулем возможно написать системы уравнений, подставить в них значения, сократить математические формулы. Результаты вычислений можно преобразовать в код LaTeX — это пригодится, если вы публикуете свои результаты в научных журналах или пишете диплом.
>>> from sympy import * . x = Symbol('x') . y, z = symbols('y, z') . expr = (x**2 + y**2) * z . expr z*(x**2 + y**2) >>> expr2 = expr.subs(x, 12) . expr2.subs(y, 3) 153*z
NumPy
NumPy — библиотека для работы с n-мерными массивами. Они похожи на вложенные кортежи, но требуют, чтобы все элементы были одного типа. Над массивами целиком и их элементами можно проводить различные операции, недоступные для стандартных типов данных.
>>> import numpy as np >>> a = np.array([1, 0.5, -1.9], dtype=float) >>> b = np.array([[10], [10], [10]], dtype=float) c = np.array(a*b) c array([[ 10., 5., -19.], [ 10., 5., -19.], [ 10., 5., -19.]])
Также в этом пакете доступны продвинутые функции и методы для обработки массивов.
>>> # Ищем среднее по вертикали >>> c.mean(axis=0) array([ 10., 5., -19.]) >>> # Ищем среднее по горизонтали >>> c.mean(axis=1) array([-1.33333333, -1.33333333, -1.33333333])
Библиотека NumPy написана на С и очень хорошо оптимизирована, что позволяет максимально ускорить вычисления. Это делает ее основой для всех продвинутых математических библиотек Python`a.
SciPy
SciPy ещё больше расширяет возможности NumPy. В этой библиотеке есть множество модулей для самых разных вычислений. Например, модуль scipy.spatial позволяет работать с пространственными данными и алгоритмами, а scipy.stats — со статистикой и распределениями вероятностей. Если вы работали с MATLAB, то вам не составит труда разобраться и со SciPy.
from scipy import stats # Берем 30 значений из нормального распределения # со средним = 25 и стандартным отклонением = 10 a = stats.norm.rvs(size=30, loc=25, scale=10) # Рассчитываем эксцесс полученной выборки stats.kurtosis(a)
Pandas
Библиотека Pandas также построена на основе NumPy. Она специализируется на работе с таблицами ( DataFrame ) и временными рядами ( Series ).
>>> import numpy as np . import pandas as pd . df = pd.DataFrame( . 'name': ['Viktor', 'Ann', 'Kim'], . 'age': [20, 35, np.nan], . 'score': [81.17, 93.7, np.nan] . >) . df name age score 0 Viktor 20.0 81.17 1 Ann 35.0 93.70 2 Kim NaN NaN
Библиотека умеет обрабатывать таблицы не хуже полноценных табличных процессоров. Данные можно сортировать, фильтровать и группировать, загружать таблицы в разных форматах и объединять их.
>>> df[df['score'] > 90] name age score 1 Ann 35.0 93.7
Pandas DataFrame используют практически все программы на Python, работающие с таблицами. Также на них часто обучают и проверяют нейросети.
Заключение
Мы рассмотрели самые популярные математические библиотеки Python. Каждая из них по-своему полезна. Для несложных вычислений вам подойдет модуль Math, а для работы с математическими уравнениями и выражениями — SymPy. Библиотека NumPy позволяет эффективно работать с многомерными массивами, поэтому большинство модулей, требующих сложных вычислений зависит от нее. SciPy расширяет возможности NumPy, добавляя модули, специализированные на разных областях науки и математики, а Pandas позволяет работать с таблицами и временными рядами.
Навыки работы с этими библиотеками пригодятся для разнообразных вычислений, которые то и дело требуются в программах. Умение математически обрабатывать данные на Python очень важно сферах Data science и Machine learning. Возможно, сейчас самое время подтянуть алгебру?
Практический Python для начинающих
Станьте junior Python программистом за 7 месяцев
Математические библиотеки Python
Боитесь математики? Не раз пытались решить задачки по математике с помощью технологий? Не вы одни. Сегодня в Python можно решить почти все математические задачи. В данной статье мы рассмотрим способы имплементации различных математических операций в Python.
Python является универсальным языком, который используется в процессе веб-разработки создания сайта, работе с базами данных и научными вычислениями. В данном руководстве будет рассмотрено, как математические библиотеки Python повлияли на научные вычисления.
Итак, давайте разберем самые популярные математические библиотеки Python.
Python библиотеки для математики
Python стал очень популярным из-за обилия библиотек. Каждая библиотека ориентирована на разработку приложений и решений всех проблем, что могут возникнуть во время процесса. Математические операции удобно выполняются в Python из-за его внимания к минимализму в сочетании с полезностью. Для математических операций в Python есть сразу несколько библиотек.
Библиотека Math в Python
Math является самым базовым математическим модулем Python. Охватывает основные математические операции, такие как сумма, экспонента, модуль и так далее. Эта библиотека не используется при работе со сложными математическими операциями, такими как умножение матриц. Расчеты, выполняемые с помощью функций библиотеки math, также выполняются намного медленнее. Тем не менее, эта библиотека подходит для выполнения основных математических операций.
Пример: Вы можете найти экспоненту от 3, используя функцию exp() библиотеки math следующим образом: