numpy e matplotlib do curso¶
Esta página lista tudo o que o curso usa das bibliotecas numpy e
matplotlib, e em que capítulo cada comando é apresentado. O curso não usa
nenhum comando fora desta lista. Cada um é explicado, com um exemplo, numa caixa
🧰 Comando novo no capítulo e no caderno da aula, antes do primeiro uso.
Use esta página como cola: quando encontrar um comando e não lembrar o que ele faz, ele está aqui, com o capítulo onde a explicação completa mora.
numpy¶
| Comando | O que faz | Exemplo | Cap. |
|---|---|---|---|
import numpy as np |
carrega a biblioteca; tudo dela passa a ser chamado com np. na frente |
import numpy as np |
0 |
np.sqrt |
raiz quadrada | np.sqrt(9) → 3.0 |
0 |
np.exp |
exponencial, \(e^x\) | np.exp(1) → 2.718... |
0 |
np.tanh |
tangente hiperbólica, uma curva em S que vai de −1 a 1 | np.tanh(0) → 0.0 |
0 |
np.array |
transforma uma lista de números num array, a tabela de números do numpy | np.array([1, 2, 3]) |
0 |
np.linspace |
quantos números igualmente espaçados de inicio a fim, incluindo os dois |
np.linspace(0, 1, 5) → [0. 0.25 0.5 0.75 1.] |
0 |
np.sum |
soma de todos os elementos | np.sum(t) |
0 |
np.max |
o maior elemento | np.max(t) |
0 |
np.argmax |
a posição do maior elemento | np.argmax(t) |
0 |
np.round |
arredonda com n casas decimais (também um array inteiro) |
np.round(3.14159, 2) → 3.14 |
0 |
np.floor |
arredonda para baixo (o "piso") | np.floor(2.9) → 2.0 |
1 |
np.float32 |
número em precisão simples (cerca de 7 algarismos), a dos microcontroladores | np.float32(0.1) |
1 |
np.sin |
seno (ângulo em radianos) | np.sin(np.pi / 2) → 1.0 |
2 |
np.cos |
cosseno (ângulo em radianos) | np.cos(0) → 1.0 |
2 |
np.log |
logaritmo natural (base \(e\)) | np.log(np.exp(2)) → 2.0 |
2 |
np.pi |
o número \(\pi\) | np.pi → 3.14159... |
2 |
np.loadtxt |
lê um arquivo de números (CSV) e devolve uma tabela | np.loadtxt("a.csv", delimiter=",", skiprows=1) |
3 |
delimiter= |
no loadtxt: o caractere que separa as colunas |
delimiter="," |
3 |
skiprows= |
no loadtxt: quantas linhas do começo pular (o cabeçalho) |
skiprows=1 |
3 |
[:, j] |
a coluna j de uma tabela: todas as linhas (:), coluna j |
dados[:, 0] |
3 |
np.zeros |
um array com n zeros, para preencher depois |
np.zeros(3) → [0. 0. 0.] |
3 |
np.min |
o menor elemento | np.min(t) |
3 |
np.argmin |
a posição do menor elemento | np.argmin(t) |
6 |
np.linalg.solve |
resolve o sistema linear \(Ax = b\) | np.linalg.solve(A, b) |
7 |
@ |
produto de matriz por vetor (ou por matriz): A @ x |
A @ x |
7 |
.copy() |
uma cópia independente do array (sem ela, b = a é só outro nome para o mesmo array) |
b = a.copy() |
7 |
np.interp |
interpolação linear numa tabela: np.interp(x, xs, ys) (fora da tabela, repete o valor da ponta) |
np.interp(9, [6, 12], [23, 30]) |
11 |
np.mean |
a média dos elementos (a soma dividida pela quantidade) | np.mean(notas) |
14 |
np.polyfit |
coeficientes do polinômio de grau g que melhor se ajusta aos pontos (mínimos quadrados), do grau mais alto para o mais baixo |
np.polyfit(x, y, 1) → [inclinação, intercepto] |
14 |
np.log10 |
logaritmo na base 10 (o dos decibéis) | np.log10(1000) → 3.0 |
15 |
np.fft.rfft |
a transformada de Fourier (FFT) de um sinal: um resultado para cada frequência, de 0 até a metade da taxa de amostragem | np.fft.rfft(sinal) |
17 |
np.fft.rfftfreq |
as frequências que correspondem a cada posição da rfft: np.fft.rfftfreq(N, 1 / fs) |
np.fft.rfftfreq(4, 1 / 4) → [0. 1. 2.] |
17 |
np.abs |
o valor absoluto de cada elemento; num resultado da FFT, o tamanho de cada número | np.abs(np.array([-2, 3])) → [2 3] |
17 |
| Além dos comandos, o array tem duas propriedades que o curso usa desde o capítulo 0: |
- conta elemento a elemento:
2 * t,t + 1,t ** 2enp.exp(t)fazem a conta em cada elemento e devolvem um array do mesmo tamanho; - índice e fatia iguais aos da lista:
t[0],t[-1],t[2:5]elen(t). - matriz (a partir do capítulo 7):
np.array([[1, 2], [3, 4]])cria uma tabela de linhas e colunas;A[i, j]é o elemento da linhaie colunaj,A[i]é a linhaiinteira elen(A)é o número de linhas.
matplotlib¶
| Comando | O que faz | Exemplo | Cap. |
|---|---|---|---|
import matplotlib.pyplot as plt |
carrega a parte de gráficos; tudo passa a ser chamado com plt. na frente |
import matplotlib.pyplot as plt |
0 |
plt.figure |
começa uma figura nova, em branco | plt.figure() |
0 |
plt.plot |
desenha y contra x; o terceiro argumento, opcional, é o formato: "-" linha, "o" bolinhas, "." pontinhos, "o-" os dois |
plt.plot(x, y, "o") |
0 |
label= |
nome da curva, que aparece na legenda | plt.plot(x, y, label="modelo") |
0 |
plt.scatter |
desenha pontos soltos, sem linha | plt.scatter(x, y) |
0 |
color= |
cor dos pontos ou da linha | plt.scatter(x, y, color="red") |
0 |
plt.xlabel |
nome do eixo horizontal (com a unidade!) | plt.xlabel("tempo (s)") |
0 |
plt.ylabel |
nome do eixo vertical | plt.ylabel("velocidade (m/s)") |
0 |
plt.title |
título da figura | plt.title("Paraquedista") |
0 |
plt.grid |
liga a grade de fundo | plt.grid() |
0 |
plt.legend |
mostra a legenda com os label= |
plt.legend() |
0 |
plt.show |
mostra a figura; é sempre o último comando | plt.show() |
0 |
plt.loglog |
igual ao plt.plot, mas com os dois eixos em escala logarítmica |
plt.loglog(hs, erros, "o-") |
2 |
plt.axhline |
desenha uma linha horizontal atravessando a figura, na altura dada | plt.axhline(0, color="black") |
4 |
plt.semilogy |
igual ao plt.plot, mas só com o eixo vertical em escala logarítmica |
plt.semilogy(iteracoes, erros, "o-") |
4 |
| ## scipy |
O scipy é uma biblioteca de métodos numéricos prontos. O curso o usa só para
conferir o que foi escrito à mão, nas seções 🔎 Confira com a biblioteca.
| Comando | O que faz | Exemplo | Cap. |
|---|---|---|---|
from scipy.optimize import brentq |
brentq(f, a, b) acha uma raiz de f no intervalo [a, b] (onde f troca de sinal) |
brentq(f, 100, 200) |
4 |
from scipy.optimize import minimize_scalar |
minimize_scalar(f, bounds=(a, b), method="bounded") acha o mínimo de f em [a, b]; a resposta fica em .x e o valor mínimo em .fun |
minimize_scalar(f, bounds=(1, 10), method="bounded").x |
6 |
from scipy.interpolate import CubicSpline |
CubicSpline(xs, ys) cria a spline cúbica da tabela; o resultado se usa como uma função: s(x) |
s = CubicSpline(horas, temp) |
11 |
from scipy.integrate import quad |
quad(f, a, b) calcula a integral de f de a a b; devolve dois números: o valor e uma estimativa do erro |
valor, erro = quad(f, 0, 1) |
12 |
from scipy.optimize import curve_fit |
curve_fit(modelo, x, y, p0=[chutes]) ajusta os parâmetros de qualquer função modelo(x, p1, p2, ...) por mínimos quadrados; devolve os parâmetros e uma matriz sobre a incerteza deles |
parametros, cov = curve_fit(f, x, y, p0=[1, 1]) |
15 |
| ## Python que o curso usa além do básico |
| Recurso | O que faz | Exemplo | Cap. |
|---|---|---|---|
| f-string com casas decimais | {x:.2f} mostra x com 2 casas |
f"{3.14159:.2f}" → 3.14 |
0 |
| f-string com largura | {x:8.2f} ocupa 8 caracteres (alinha colunas de tabela); {n:5d} faz o mesmo com um inteiro |
f"{3.1:8.2f}" → 3.10 |
0 |
| f-string em notação científica | {x:.1e} mostra x como 4.5e-03 |
f"{0.0045:.1e}" → 4.5e-03 |
0 |
| fatia com passo | y[1:-1:2] pega de 2 em 2, da posição 1 até antes da última |
[10, 11, 12, 13, 14][1:-1:2] → [11, 13] |
12 |