Pular para o conteúdo

    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:

    BibliotecaO que oferecePor que depende de arrays
    NumPyO array ndarray e a matemática sobre eleÉ a base
    pandasTabelas com rótulos (DataFrame)Cada coluna é, por baixo, um array
    MatplotlibGráficosRecebe arrays e desenha
    scikit-learnAprendizado de máquina clássicoDados e modelos são arrays
    PyTorch, JAX, TensorFlowAprendizado profundoO "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:

    ambiente/cap01_ecossistema_python.pylinhas 10 a 17
    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__)
    
    Saída
    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 import bastam 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.