Capítulo 1, Ambiente
Por que Python virou a linguagem dos dados
Antes de escrever uma linha de NumPy, vale entender por que ele existe e por que vive em Python. A resposta é menos sobre a linguagem e mais sobre as pessoas que construíram as bibliotecas em volta dela.
Código deste capítulo: ambiente/cap01_ecossistema_python.py
Python é pequeno, e o ecossistema é grande
O Python em si não sabe treinar uma rede neural, desenhar um gráfico nem ler uma planilha. Nada disso vem embutido. O que o Python tem é uma sintaxe fácil de ler e uma facilidade enorme de chamar código escrito em outras linguagens. Foi isso que atraiu quem trabalhava com cálculo numérico: dava para escrever o miolo pesado em C ou Fortran e usá-lo por uma interface simples em Python.
O NumPy nasceu em meados dos anos 2000, da unificação de dois projetos anteriores (o Numeric e o Numarray). Todo o resto da pilha de dados foi construído em cima dele:
| Biblioteca | O que oferece | Por que depende de arrays |
|---|---|---|
| NumPy | O array ndarray e a matemática sobre ele | É a base |
| pandas | Tabelas com rótulos (DataFrame) | Cada coluna é, por baixo, um array |
| Matplotlib | Gráficos | Recebe arrays e desenha |
| scikit-learn | Aprendizado de máquina clássico | Dados e modelos são arrays |
| PyTorch, JAX, TensorFlow | Aprendizado profundo | O "tensor" é um array com GPU e derivadas |
Nenhuma dessas bibliotecas faz parte do Python. Cada uma foi escrita por pessoas, publicada de graça e mantida por uma comunidade. Dá para conferir isso no próprio interpretador:
import importlib.util
import sys
import numpy as np
print("numpy faz parte da biblioteca padrão?", "numpy" in sys.stdlib_module_names)
print("numpy está instalado aqui?", importlib.util.find_spec("numpy") is not None)
print(type(np.add).__name__, type(np.ndarray).__name__)
numpy faz parte da biblioteca padrão? False
numpy está instalado aqui? True
ufunc type
O np.add é um objeto do tipo ufunc, uma função compilada que opera sobre arrays inteiros. O trabalho pesado acontece nesse código compilado, e o Python só orquestra. Essa é a forma saudável de pensar em toda a pilha: Python é a cola, e a velocidade vem das camadas de baixo.
Quanto Python eu preciso saber antes?
Menos do que você imagina. Variáveis, listas, laços, funções e
importbastam para começar, e o resto você aprende usando. Ninguém memoriza uma biblioteca inteira. Quem trabalha com dados consulta a documentação o tempo todo, e o que importa é saber o que é possível, para saber o que procurar.
Exercício 1
Quais destes módulos vêm com o Python?
Dada a lista ["math", "numpy", "json", "pandas"], devolva só os que fazem parte da biblioteca padrão.