1. 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
2. SciPy больше расширяет возможности NumPy, предоставляя множество модулей для различных вычислений. Эта библиотека включает в себя модули, которые позволяют работать с пространственными данными, статистикой и распределениями вероятностей. Если вы работали с MATLAB, то вам не составит труда освоить SciPy.
from scipy import stats
# Берем 30 значений из нормального распределения
# со средним = 25 и стандартным отклонением = 10
a = stats.norm.rvs(size=30, loc=25, scale=10)
# Рассчитываем эксцесс полученной выборки
stats.kurtosis(a)3. Math - это модуль, который может использоваться, когда необходимо выполнить математические операции, которые недоступны в стандартных операторах Python. Например, вы можете использовать Math для вычисления квадратного корня, логарифма или синуса.
>>> import math
>>> math.sqrt(17)
4.123105625617661
>>> math.sin(33)
0.9999118601072672
>>> math.log(15, 2)
3.90689059560851874. NumPy - библиотека, предназначенная для работы с n-мерными массивами, которые похожи на вложенные кортежи, но все элементы должны быть одного типа. NumPy позволяет проводить различные операции над массивами целиком и над их элементами, которые недоступны для стандартных типов данных.
>>> 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])
5. 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@data_math