Python oferece uma variedade impressionante de bibliotecas para cálculos matemáticos — desde funções básicas na própria linguagem até ferramentas poderosas para álgebra simbólica, otimização e análise dimensional. Se você está começando com Python (veja nosso guia de início) ou já domina o básico, conhecer essas bibliotecas vai ampliar bastante o que você consegue fazer com números.
Este artigo apresenta 8 bibliotecas essenciais: quatro da biblioteca padrão (math, statistics, decimal, fractions) e quatro externas muito usadas (NumPy, SymPy, SciPy, Pint). Cada uma resolve um tipo de problema diferente. Use a tabela de referência rápida abaixo para navegar direto até a que você precisa.
Referência rápida
Links diretos para cada biblioteca:
| Biblioteca | Uso |
|---|---|
| math | Funções básicas |
| statistics | Média, mediana, desvio |
| decimal | Precisão decimal |
| fractions | Frações exatas |
| numpy | NumPy |
| sympy | SymPy |
| scipy | SciPy |
| pint | Pint |
Biblioteca padrão
Essas quatro bibliotecas vêm com o Python — não é preciso instalar nada.
math — Funções matemáticas básicas
O módulo math traz funções clássicas de matemática: raiz quadrada, trigonometria, logaritmos, potências e constantes como π e e. É a escolha certa quando você precisa de operações numéricas simples e eficientes, sem dependências externas.
import math
# Hypotenuse: sqrt(3²+4²) = 5
print(math.sqrt(3**2 + 4**2)) # 5.0
# Sine of 30° (radians)
print(math.sin(math.radians(30))) # 0.5
# Log base 10
print(math.log10(1000)) # 3.0
O exemplo abaixo mostra a hipotenusa de um triângulo 3-4-5, o seno de 30 graus (convertendo de graus para radianos) e o logaritmo na base 10. Para cálculos científicos mais pesados, NumPy costuma ser mais rápido; para o dia a dia, math resolve.
statistics — Média, mediana, desvio
O módulo statistics foi adicionado no Python 3.4 para estatística descritiva básica. Ele calcula média, mediana, moda, variância e desvio padrão de sequências de números. Ideal para análises rápidas sem precisar do NumPy.
import statistics
data = [120, 180, 250, 300, 420]
print(statistics.mean(data)) # 254.0
print(statistics.median(data)) # 250
print(statistics.stdev(data)) # ~118.9
No exemplo, usamos uma lista de valores (por exemplo, preços ou tempos de resposta) e obtemos a média, a mediana e o desvio padrão. Para datasets grandes ou operações vetorizadas, NumPy ainda é preferível.
decimal — Precisão decimal exata
Números em ponto flutuante (float) usam representação binária e podem gerar erros de arredondamento — como o famoso 0.1 + 0.2 ≠ 0.3. O módulo decimal usa aritmética decimal de precisão arbitrária, essencial para dinheiro e medições que exigem exatidão.
from decimal import Decimal
# Float trap: 0.1 + 0.2
print(0.1 + 0.2) # 0.30000000000000004
# Decimal for exact precision
price = Decimal("19.99")
with_tax = price * (1 + Decimal("0.10"))
print(with_tax) # 21.989
No exemplo, mostramos a armadilha do float e, em seguida, usamos Decimal para calcular um preço com taxa de 10% sem perder precisão.
fractions — Números racionais
O módulo fractions representa números como frações exatas (numerador/denominador), evitando erros de ponto flutuante em operações com razões. Útil para cálculos que precisam manter a forma fracionária.
from fractions import Fraction
# 2/5 + 1/10 = 4/10 + 1/10 = 1/2
print(Fraction(2, 5) + Fraction(1, 10)) # 1/2
No exemplo, somamos 2/5 e 1/10 e obtemos 1/2 como resultado exato, sem conversão para float.
Bibliotecas externas
Essas bibliotecas exigem pip install. São padrão em ciência de dados, engenharia e pesquisa.
NumPy — Arrays e computação numérica
NumPy é a base da computação numérica em Python. Oferece arrays multidimensionais eficientes e uma enorme quantidade de funções para operações vetorizadas. Quase toda biblioteca de ciência de dados (pandas, scikit-learn, etc.) depende do NumPy.
import numpy as np
arr = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
norm = (arr - arr.mean()) / arr.std()
print(norm.mean(), norm.std()) # ~0.0, ~1.0
O exemplo normaliza um array (média 0, desvio 1) — uma operação comum em machine learning e análise de dados.
SymPy — Álgebra simbólica
SymPy faz álgebra simbólica: derivadas, integrais, equações, simplificações. Em vez de aproximações numéricas, você trabalha com expressões exatas (símbolos, frações, raízes).
from sympy import symbols, diff, solve
x = symbols('x')
expr = x**3 - x
print(diff(expr, x)) # 3*x**2 - 1
print(solve(expr, x)) # [-1, 0, 1]
No exemplo, definimos um símbolo x, derivamos x³−x e resolvemos a equação para encontrar as raízes.
SciPy — Otimização e ciência
SciPy estende o NumPy com algoritmos científicos: otimização, integração, interpolação, processamento de sinais, estatística avançada e muito mais. É a ferramenta padrão para problemas numéricos em pesquisa e engenharia.
from scipy.optimize import minimize
# Minimum of x² + 3x + 2
result = minimize(lambda x: x[0]**2 + 3*x[0] + 2, [0])
print(result.x) # [-1.5]
print(result.fun) # -0.25
O exemplo minimiza a função quadrática x²+3x+2. O mínimo está em x=−1,5 com valor −0,25.
Pint — Unidades e dimensões
Pint permite trabalhar com unidades físicas (km, h, m/s, etc.) de forma segura. Evita erros como somar metros com pés ou confundir velocidade com aceleração. Muito útil em física, engenharia e simulações.
from pint import UnitRegistry
ureg = UnitRegistry()
speed = 120 * ureg.km / (2 * ureg.h)
print(speed) # 60 km/h
print(speed.to(ureg.m / ureg.s)) # 16.67 m/s
No exemplo, calculamos 120 km em 2 horas e convertemos o resultado para m/s.
Resumo
Visão geral das 8 bibliotecas:
- math — Funções básicas (sqrt, sin, log, etc.)
- statistics — Média, mediana, desvio padrão
- decimal — Precisão decimal exata (dinheiro, medições)
- fractions — Números racionais exatos
- NumPy — Arrays e computação vetorizada
- SymPy — Álgebra simbólica (derivadas, equações)
- SciPy — Otimização, integração, algoritmos científicos
- Pint — Unidades e conversões dimensionais

Leave a Reply