Математические программы на питоне

Модуль 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 — минимально допустимая разница.
Читайте также:  Найти работу программист php

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() поможет вам сравнивать числа с заданной точностью.

Читайте также:  Script python in power bi

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 для начинающих

Практический Python для начинающих

Станьте junior Python программистом за 7 месяцев

Источник

Математические библиотеки Python

Математика в Python

Боитесь математики? Не раз пытались решить задачки по математике с помощью технологий? Не вы одни. Сегодня в Python можно решить почти все математические задачи. В данной статье мы рассмотрим способы имплементации различных математических операций в Python.

Python является универсальным языком, который используется в процессе веб-разработки создания сайта, работе с базами данных и научными вычислениями. В данном руководстве будет рассмотрено, как математические библиотеки Python повлияли на научные вычисления.

Итак, давайте разберем самые популярные математические библиотеки Python.

Python библиотеки для математики

Python стал очень популярным из-за обилия библиотек. Каждая библиотека ориентирована на разработку приложений и решений всех проблем, что могут возникнуть во время процесса. Математические операции удобно выполняются в Python из-за его внимания к минимализму в сочетании с полезностью. Для математических операций в Python есть сразу несколько библиотек.

Библиотека Math в Python

Math является самым базовым математическим модулем Python. Охватывает основные математические операции, такие как сумма, экспонента, модуль и так далее. Эта библиотека не используется при работе со сложными математическими операциями, такими как умножение матриц. Расчеты, выполняемые с помощью функций библиотеки math, также выполняются намного медленнее. Тем не менее, эта библиотека подходит для выполнения основных математических операций.

Пример: Вы можете найти экспоненту от 3, используя функцию exp() библиотеки math следующим образом:

Источник

Оцените статью