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

Vetores, m,atrizes e a NumPy

Paulo Bordoni
September 03, 2013

Vetores, m,atrizes e a NumPy

Apresentação do ambiente de trabalho, o Spyder, e uma introdução à biblioteca NumPy - Numerical Python.

Paulo Bordoni

September 03, 2013
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Já está na hora de começar com a Álgebra linear

    computacional. Vamos usar o Python(x,y) com a Spyder como interface. Se você ainda não instalou o Python(x,y), faça-o agora. As instruções estão nas transparências “Cálculo numérico, com meus óculos”. Começaremos pela Spyder, que vem com o Python(x,y).
  2. 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.
  3. 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.
  4. Este é o índice completo do Guia do usuário. Precisaremos

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

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

    Numpy há material para muito mais que um curso introdutório.
  7. 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.
  8. Loirinha, agora é sua vez de vestir-se a rigor. Vamos

    te apresentar ao cara mais importante de NumPy. Capriche!
  9. Loirinha, tenho a honra e o prazer de te apresentar

    o objeto ndarray! Caprichei, Mestra! Mas é um homem-objeto?
  10. Bem, você precisará conhece-lo mais profundamente. Mas, de cara, fique

    sabendo que: Mestre, prometo que farei o possível...
  11. Quais são seus atributos ndarray? E seus métodos? Onde, como

    e quando nasceu? 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.
  12. Loirinha, peça ao Manuel para te contar mais. Ele conhece

    o ndarray profundamente. Sugiro esta listinha de perguntas!
  13. 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.
  14. Esta é a lista de todas as rotinas amigáveis para

    criação de arrays. Concordo Mestra, bastam as amigáveis.
  15. Pois é minha filha, vamos encerrar o baile 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!
  16. Hogwarts Dumbledore Cautela Mestre. A magia é proibida para muggles

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

    vários outros atributos e métodos, que veremos à medida que formos usando.
  18. Estes outros atributos que tem a ver mais diretamente com

    a disposição na memória de um ndarray. Surfista, só tente entender flags e strides depois de ler o texto ao final deste conjunto de slides.
  19. 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!
  20. 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.
  21. 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.
  22. O dtype é o tipo de dado dos elementos do

    array. Pode ser um desses:
  23. 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++). Não deixem de ler o texto ao final deste conjunto de transparências.
  24. arange() é a irmã mais nova e importantíssima da função

    range() que vocês já usaram muito em Python.
  25. 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.
  26. Usaremos a linspace( ). Também veremos a vetorização e a

    difusão em ação. Nós temos mágica, para fazer ...
  27. 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!
  28. 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?
  29. Na próxima transparência vou reescrever, em Python comum, a parte

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

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

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

    triangular superior U (de upper) e sua parte triangular inferior (L de lower).
  33. A leitura a seguir ajudará a compreender melhor a estrutura

    interna de um array. Recortei-a do livro do Travis L. Oliphant