Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vetores, matrizes e a NumPy

Paulo Bordoni
November 16, 2015

Vetores, matrizes e a NumPy

...

Paulo Bordoni

November 16, 2015
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. • Apresentando a Spyder, • Apresentando Numpy, seu guia do

    usuário e referência, • Ndarrays: • Definição, atributos básicos, tipos de dados e métodos, • Criando arrays a partir de listas, • Vetorização e difusão, • arange, linspace, logspace e meshgrid, • zeros, ones, identity, diag, eye, • tri, triu, tril, vandermonde. Neste conjunto de transparências estudaremos a Numpy.. Eis um resumo do que veremos:
  2. Tanto Python(x,y) como Anaconda são IDE’s extremamente amigáveis e poderosas

    para trabalhar com Cálculo Numérico em Python. Ambas permitem usar a Spyder.
  3. Você pode criar um arquivo .py, executá-lo e ver o

    resultado ao lado, no Console. Ou executar duas ou três linhas diretamente no Console.
  4. No Manuel temos o Guia do usuário, onde é ensinado

    o básico. Na Referência cada função, objeto ou módulo é descrito detalhadamente.
  5. Este é o índice completo do Guia do usuário. Precisaremos

    só de partes da introdução e do básico de Numpy.
  6. Este é o início do índice completo da Referência ao

    NumPy. Usaremos apenas parte desse conteúdo.
  7. Continuação do Índice. Acalme-se Surfista - não veremos tudo. No

    Numpy há material para muito mais que um curso introdutório.
  8. Apenas para completar, esta é parte final do Índice. São

    tópicos mais avançados. Fiz questão de mostrar o agradecimento ao Travis L. Oliphant.
  9. Loirinha, vista-se a rigor. Vou te levar à temporada de

    2015 do Theatro Municipal para assistir a única apresentação do ator mais importante da Numpy.
  10. Você também está linda Loirinha. Ficará deslumbrada com ele, como

    eu já fiquei, há muito tempo atrás. É muito belo e poderoso! Mestra, você o conheceu? Quem diria!
  11. Loirinha, tenho a honra e o prazer de te apresentar

    o objeto ndarray! Um homem-objeto, Mestre?
  12. Bem, você precisará conhecê-lo mais profundamente. Mas, de cara, fique

    sabendo que: Mestre, prometo que farei o possível...
  13. Métodos • f( ) • g( ) • ⋅⋅⋅ Atributos

    • aaa • bbb • ⋅⋅⋅ Classe Abc Calma minha filha, ele é tímido! Mas, recordando Python: uma classe é um padrão para criação para seus objetos. Elas possuem atributos e métodos. Cada indivíduo (objeto) de uma classe é criado com a personalização os seus atributos e métodos. Quais são seus atributos ndarray? E seus métodos? Onde, como e quando nasceu?
  14. Loirinha, peça ao Manuel para te contar mais. Ele conhece

    o ndarray profundamente. Sugiro esta listinha de perguntas!
  15. Toda classe possui um ou mais construtores. Usualmente eles são

    invocados através do nome da classe Com os ndarrays não é diferente. Entretanto, além desses construtores de “baixo nível”, a NumPy oferece outros construtores, mais amigáveis.
  16. Esta é a lista de todas as rotinas amigáveis para

    criação de arrays. Concordo Mestra, bastam as amigáveis.
  17. Pois é minha filha, vamos sair do Municipal porque há

    muita coisa a aprender. Mestres, estou ficando confusa com tanta informação. Minha amiga tem razão, tornem as coisas mais práticas!
  18. Hogwarts Dumbledore Cautela Mestre. A magia é proibida para muggles

    (e alunos de graduação...) Vou iniciar meus pupilos em magias de NumPy!
  19. São atributos da classe ndarray. Recortei só esses 3. Existem

    vários outros atributos e métodos, que veremos à medida que formos usando.
  20. Estes são outros atributos mais diretamente associados com a estrutura

    de memória de um ndarray. Surfista, só tente entender flags e strides depois de ler “NumPy – Leitura complementar”
  21. Mas, para mim, ainda não estão claras as diferenças entre

    shape, ndim e size e você acrescenta mais 2! Calma, faremos mais exemplos!
  22. Não vejo aplicações práticas para um array 3d, Mestre! Ora,

    pense numa Biblioteca. Ela possui estantes, as estantes tem prateleiras, nas prateleiras há livros. Surfista e Loirinha, repitam esses programas usando tuplas no lugar de listas.
  23. Nos 3 exemplos só utilizamos o 1º parâmetro – object

    – que é obrigatório. Os outros parâmetros são opcionais, já pré- definidos por NumPy. Leia abaixo uma explicação para cada um.
  24. O dtype é o tipo de dado dos elementos do

    array. Pode ser um desses:
  25. O parâmetro “order”. No caso de arrays 2d, ele estabelece

    se o array será armazenado na memória por colunas (como FORTAN) ou por linhas (como C e C++).
  26. arange() é a irmã mais nova e importantíssima da função

    range() que vocês já usaram muito em Python.
  27. Uma diferença entre as duas funções é que arange() não

    opera apenas com números inteiros. Uma outra é que arange() retorna um ndarray e não uma lista.
  28. Usaremos a linspace( ). Também veremos a vetorização e a

    difusão em ação. Nós temos mágica, para fazer ...
  29. x é um vetor com 10 valores igualmente espaçados de

    0 a π (incluíndo-os). y é o vetor obtido aplicando a função f diretamente ao vetor x Observe os vetores x e y! Neles está a magia da vetorização e difusão!
  30. A mesma coisa que o zipper de sua calça jeans

    faz, Loirinha. Junta os elementos correspondentes de cada um dos vetores, x e y num novo vetor z cujos elementos z k são as tuplas z k = ( x k , y k ) Nunca ví essa função zip(x,y). O que ela faz, Mestra?
  31. Na próxima transparência vou reescrever, em Python comum, a parte

    do código que marquei Sem vetorização e difusão.
  32. I, array identidade 3x3 E, array 4x3 com 1’s na

    2ª sobre diagonal Mais arrays especiais
  33. Criando “matrizes” diagonais: No próximo exemplo vamos criar uma matriz

    de Vandermonde 4x4 e depois extrair sua diagonal.
  34. Criaremos uma matriz A, 4x4, e outras duas: sua parte

    triangular superior U (de upper) e sua parte triangular inferior (L de lower).
  35. Na Leitura complementar você encontrará: • um “dicionário” Numpy x

    Matlab; • Explicações mais profundas sobre a estrutura dos ndarrays.