5 самых полезных математических библиотек Python Python

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 для начинающих
Практический Python для начинающих

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

 7 месяцев

Возможно будет интересно

🏆 Hello, world! Python
Новичок
🏆 Hello, world!

Мы вчера запустили новый www.pylot.me. Должны были в следующую среду, но запустили вчера.

2022-10-04
Как практиковаться в Python? Python
Новичок
Как практиковаться в Python?

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

2022-10-19
Условные конструкции и сопоставление структурных шаблонов Шпаргалки
Новичок
Условные конструкции и сопоставление структурных шаблонов

Шпаргалка по условным конструкциям и сопоставлению структурных шаблонов

2022-11-09