Voltar aos Cursos
AI018 Professional

Guia do Usuário do NumPy

Uma visão geral introdutória e guia técnico completo do NumPy, cobrindo instalação, manipulação de matrizes, indexação, broadcast e integração com C/C++.

4.9
15.0h
891 estudantes
0 curtidas
Inteligência Artificial
Começar a Aprender

Visão Geral do Curso

📚 Resumo do Conteúdo

Uma visão introdutória abrangente e um guia técnico sobre o NumPy, cobrindo instalação, manipulação de arrays, indexação, transmissão (broadcasting) e integração com C/C++.

Domine a base do cálculo científico em Python com o guia oficial do NumPy.

Autor: A Comunidade NumPy

Agradecimentos: Escrito pela comunidade NumPy

🎯 Objetivos de Aprendizagem

  1. Definir o NumPy e identificar seu papel no ecossistema científico do Python.
  2. Explicar por que o NumPy é significativamente mais rápido que loops padrão do Python usando o conceito de vetorização.
  3. Executar comandos de instalação para diversos ambientes, incluindo Pip, Conda e Raspberry Pi.
  4. Identificar e interpretar atributos principais do ndarray, como ndim, shape e dtype.
  5. Executar criação e manipulação de arrays usando funções como linspace, reshape, vstack e hstack.
  6. Aplicar operações elementares, funções universais (ufuncs) e solucionadores de álgebra linear a conjuntos de dados numéricos.
  7. Gerenciar precisão de dados e mitigar erros de estouro usando tipos escalares do NumPy e ferramentas de informação (iinfo, finfo).
  8. Implementar ingestão flexível de dados do disco usando genfromtxt com delimitadores personalizados, cabeçalhos e seleção de colunas.
  9. Aplicar as Regras Gerais de Broadcasting para prever e controlar interações entre arrays de formas diferentes.
  10. Gerenciar referências de memória e evitar "armadilhas" em subclasses personalizadas de ndarray usando o atributo .base.

🔹 Lição 1: Introdução e Configuração do Ambiente

Visão Geral: Esta lição apresenta o NumPy como a biblioteca fundamental para computação científica em Python, explicando suas vantagens de desempenho por meio da vetorização. Os alunos aprenderão a instalar a biblioteca em diversas plataformas (Windows, Raspberry Pi, Conda, PyCharm) e resolver problemas comuns de instalação, como ImportError, gerenciando variáveis de ambiente e dependências do sistema.

Resultados de Aprendizagem:

  • Definir o NumPy e identificar seu papel no ecossistema científico do Python.
  • Explicar por que o NumPy é significativamente mais rápido que loops padrão do Python usando o conceito de vetorização.
  • Executar comandos de instalação para diversos ambientes, incluindo Pip, Conda e Raspberry Pi.

🔹 Lição 2: Fundamentos Básicos e Manipulação de Arrays

Visão Geral: Esta lição oferece uma introdução abrangente ao objeto ndarray do NumPy, abordando seus atributos principais, métodos de criação e operações matemáticas básicas. Ela se estende para tópicos avançados, incluindo indexação sofisticada (com base booleana e inteira), manipulação de forma e rotinas essenciais de álgebra linear. Ao final deste módulo, os alunos serão capazes de armazenar, transformar e analisar estruturas de dados multidimensionais com eficiência.

Resultados de Aprendizagem:

  • Identificar e interpretar atributos principais do ndarray, como ndim, shape e dtype.
  • Executar criação e manipulação de arrays usando funções como linspace, reshape, vstack e hstack.
  • Aplicar operações elementares, funções universais (ufuncs) e solucionadores de álgebra linear a conjuntos de dados numéricos.

🔹 Lição 3: Manipulação Avançada de Dados e Broadcasting

Visão Geral: Esta lição aborda os mecanismos avançados do NumPy, focando na gestão precisa dos tipos de dados, tratamento de estouros e operações de entrada/saída sofisticadas usando genfromtxt. Os alunos dominarão a lógica interna do Broadcasting para operações aritméticas, os detalhes da ordem de bytes em nível de memória e a criação de arrays estruturados/registros para conjuntos de dados heterogêneos. As últimas seções detalham a extensibilidade do NumPy por meio de contêineres de arrays personalizados e os protocolos formais para subclasseamento de ndarray.

Resultados de Aprendizagem:

  • Gerenciar precisão de dados e mitigar erros de estouro usando tipos escalares do NumPy e ferramentas de informação (iinfo, finfo).
  • Implementar ingestão flexível de dados do disco usando genfromtxt com delimitadores personalizados, cabeçalhos e seleção de colunas.
  • Aplicar as Regras Gerais de Broadcasting para prever e controlar interações entre arrays de formas diferentes.

🔹 Lição 4: Exceções Numéricas e Interfacing com Linguagens

Visão Geral: Esta lição explora os nuances avançados do subclasseamento do NumPy, especificamente em relação à gestão de memória e compatibilidade com versões posteriores. Também examina como o NumPy implementa o padrão IEEE 754 para números de ponto flutuante para lidar com valores especiais e exceções numéricas, concluindo com os mecanismos para interagir com arrays do NumPy em linguagens de baixo nível como C, C++ e Fortran.

Resultados de Aprendizagem:

  • Gerenciar referências de memória e evitar "armadilhas" em subclasses personalizadas de ndarray usando o atributo .base.
  • Manter compatibilidade com versões posteriores nas subclasses corretamente implementando __array_wrap__ e assinaturas de métodos.
  • Identificar e manipular valores especiais do IEEE 754 (NaN, Inf) e configurar comportamentos globais de exceções numéricas.

🔹 Lição 5: Estendendo o NumPy com a C-API

Visão Geral: Esta lição explora os vários métodos para estender a funcionalidade do NumPy ao interagir com linguagens compiladas como C, C++ e Fortran. Cobrem ferramentas automatizadas como f2py e Cython, envolvimento manual com ctypes, criação de funções universais (ufuncs) de alto desempenho, e técnicas avançadas da C-API para iteração em arrays, tipos de dados personalizados e subtipagem do ndarray.

Resultados de Aprendizagem:

  • Comparar e implementar diversos métodos para "conectar" código compilado ao Python (f2py, Cython, ctypes).
  • Criar e registrar funções universais (ufuncs) personalizadas do NumPy para tipos simples e múltiplos de dados, incluindo arrays estruturados.
  • Utilizar a C-API do NumPy para iterar com eficiência em arrays, lidar com broadcasting e definir tipos de dados ou subtipos de ndarray personalizados.