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

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

Какие есть библиотеки для математики в Python?

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

И одно из главных преимуществ Python – расширяемость. То есть, помимо стандартных компонентов этот язык можно дополнять другими. Собственно, и для математических операций есть целый спектр библиотек. 

Библиотека Math

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

Существенный недостаток библиотеки – низкая скорость работы. Тем не менее, если вы только обучаетесь разработке на Python, начинать нужно именно с нее.

Как это работает? Например, вам необходимо найти экспоненту от 3. Для этого необходимо воспользоваться функцией exp().  

from math import exp

exp(3) # Вычисление экспоненты

Библиотека Numpy

Если вам необходимо работать с матрицами, то библиотека Numpy – отличный выбор. Наиболее важной характеристикой Numpy является ее способность просто молниеносно производить расчеты. Это реализуется на практике с помощью C-API, позволяющие получать результаты мгновенно.

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

import numpy as np

 

 

mat1 = np.array([[1,2],[3,4]])

mat2 = np.array([[5,6],[7,8]])

np.dot(mat1,mat2)

SciPy

Библиотека math содержит научный инструментарий в Python. Она содержит целый спектр средств для Преобразования Фурье, линейной алгебры, математической оптимизации, и так далее. С помощью модели numpy мы получаем базовую структуру данных массива. 

Давайте приведем пример этой библиотеки. Для этого воспользуемся функцией linalg(), с помощью которой производится вычисление детерминанта квадратной матрицы. 

from scipy import linalg

 

 

import numpy as np

mat1 = np.array([[1,2],[3,4]]) #DataFlair

linalg.det(mat1) # Результат: -2.0

Statsmodel

Если вам необходимо производить статистические расчеты, то тогда обратите внимание на пакет Statsmodel. С его помощью можно производить логический вывод, описательную статистику, а также оценку для разнообразных статистических моделей. Это дает возможность добиться более эффективного статистического исследования данных.

Ниже приводится пример приложения, которое задействует библиотеку Statsmodel. 

import numpy as np

import statsmodels.api as sm

import statsmodels.formula.api as smf

 

 

input_data = sm.datasets.get_rdataset("Guerry", "HistData").data

 

res = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data = input_data).fit()

print(res.summary())

Scikit-learn

Конечно, современное программирование невозможно представить без машинного обучения. С помощью разнообразных инструментов можно легко осуществлять прогнозирование результатов и классифицирование данных. Чтобы достичь этой цели, Scikit-learn дает возможность воспользоваться целым спектром возможностей, с помощью которых можно сделать классификацию, регрессию и кластеризацию. 

from sklearn import linear_model

 

 

regress = linear_model.LinearRegression()

 

regress.fit([[0,0],[1,1],[2,2]], [0,1,2])

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

 

print(regress.coef_) # Результат: array([0.5, 0.5])

Как работать с математикой новичку?

Конечно, почти все описанные выше библиотеки довольно сложные для новичков. И, возможно, их не понадобится использовать вообще в ваших задачах. Поэтому начинать необходимо со стандартной библиотеки Math, которая содержит основной функционал. Далее мы рассмотрим основные аспекты, которые необходимо знать об этой библиотеке.

Особенности использования библиотеки Math в Python

Модуль Math не написан на Python. Он разработан с использованием языка программирования C, но при этом связан с интерпретатором. Следовательно, его можно использовать и в Python. 

Какие основные функции работы с числами содержатся в этой библиотеке?

Функции представления чисел

ceil() и floor() – функции получения целой части числа

Это функции общего назначения. С помощью функции ceil() пользователь может округлить число до самого ближайшего целого в большую сторону. Что касается функции floor, то она попросту удаляет цифры после запятой. 

При этом каждая из этих функций принимает десятичное число в качестве аргумента. И объединяет их то, что они возвращают в виде результата целочисленное значение.

Приведем пример этой функции. 

# Импорт модуля math

import math




# Дробный номер

number=8.10




# выводим целую часть числа с округлением к большему

print("Верхний предел 8.10 это:",math.ceil(number))




# выводим целую часть числа с округлением к меньшему

print("Нижний предел 8.10 это:",math.floor(number))

fabs() – абсолютное значение числа

Если необходимо получить абсолютное значение числа, то можно воспользоваться функцией fabs. Если в числе содержится любой отрицательный знак, он попросту убирается. А в результате возвращается положительное значение числа.  

# Импорт модуля math

import math




number = -8.10

# вывод абсолютного значения числа

print(math.fabs(number))

factorial() – факториал

С помощью этой функции можно получить факториал положительного целого числа. 

# Импорт модуля math 

import math    




number = 5

# вывод факториала числа

print("факториала числа", math.factorial(number))

fmod() – получение остатка от деления

С помощью этой функции вы получите такой же результат, как если бы воспользовались оператором %. Зачем же тогда нужна отдельная функция, если есть оператор? Все просто. Дело в том, что выражение x % y может принимать в качестве операндов только целые числа. А функция fmod() может использоваться для чисел с плавающей точкой. 

# Импорт модуля math  

import math  




print(math.fmod(5,2))  

print(math.fmod(-5,2))  

print(math.fmod(-5.2,2))  

print(math.fmod(5.2,2))

Функция frexp()

С помощью этой функции можно получить мантиссу и показатель степени. 

import math  




print(math.frexp(24.8))

Функция fsum() – точная сумма float

Если необходимо получить сумму значений с плавающей точкой в итерируемом объекте, а также сумму списка либо диапазона с данными, то можно воспользоваться функцией fsum()

# Импорт модуля math  

import math   

    

# сумма списка

numbers=[.1,.2,.3,.4,.5,.6,.7,.8,8.9]    

print("сумма ", numbers, ":", math.fsum(numbers))    

    

# сумма диапазона    

print("сумма чисел от 1 до 10:", math.fsum(range(1,11)))

Функции возведения в степень и логарифма

Функция exp()

Этой функцией принимается один параметр в виде дробного значения, и возвращается e^x.

Пример этой функции был приведен выше. Давайте еще один покажем. 

# Импорт модуля math  

import math   

    

print("e в степени 5 ", math.exp(5))

print("e в степени 2.5", math.exp(2.5))

expm1()

Аналогичная предыдущей функция, только возвращает exp(x)-1

# Импорт модуля math  

import math   

    

print(math.exp(5)-1)

print(math.expm1(5))

log() – логарифм числа

С помощью функции log() можно получить логарифм числа. Принимает два аргумента:

  1. x – число, для которого надо найти логарифм.
  2. base – основание. По умолчанию – e.

Работает она следующим образом. 

# Импорт модуля math  

import math  

  

# логарифм с основанием e

print(math.log(2))  

  

# логарифм с указанным основанием (2)

print(math.log(64,2))

log1p()

По сути, аналогичная предыдущей функции, только к x добавляет 1. 

 # Импорт модуля math  

import math  

  

print(math.log1p(2))

log10()

Осуществляет вычисление логарифма по основанию 10.

pow() – степень числа

Эта функция используется для того, чтобы найти степень числа. Функция имеет простой синтаксис pow(Base, Power). То есть, ею принимается два аргумента: основание и степень.

Давайте приведем пример такой функции. 

# Импорт модуля math  

import math  




print(math.pow(5,4))

sqrt()

С помощью этой функции пользователь может получить квадратный корень из числа. Ею число принимается в виде аргумента, а в качестве результата возвращается квадратный корень. 

# Импорт модуля math  

import math  




print(math.sqrt(256))

Тригонометрические функции

Python также содержит большое количество тригонометрических функций, таких как синус, косинус, тангенс и другие. 

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

Python включает две математические константы – pi и e. Первая возвращает математическое число Пи, а вторая – e (константу со значением 2,7183…). 

Функции преобразования углов

Это функции, с помощью которых можно выполнять операции преобразования углов. Насколько мы знаем, они могут записываться в радианах и градусах. Соответственно, с помощью функций преобразования углов можно конвертировать радианы в градусы, и наоборот. Сами функции следующие:

  • degrees(). Функция, позволяющая выполнять конвертацию радиан в градусы.
  • radians(), дает возможность получить градусы, основываясь на радианах.

Выводы

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

ОфисГуру
Adblock
detector