Você está na página 1de 97

Vetores, matrizes e a NumPy

Prof. Paulo R. G. Bordoni

LNCC

UFRJ

J est na hora de comear com a lgebra linear computacional.

Vamos usar o Python(x,y) com a Spyder como interface.


Se voc ainda no instalou o Python(x,y), faa-o agora. As instrues esto nas transparncias Clculo numrico, com meus culos. Comearemos pela Spyder, que vem com o Python(x,y).

s clicar no cone para abrir a Spyder.

Surfista e Loirinha, vocs podem buscar mais informaes no endereo abaixo.


O nome Spyder um acrnimo.

A Spyder uma excelente IDE de cdigo aberto e roda em todas as plataformas!

Vejam a cara da Spyder no Windows, Linux e Mac OS X

Possui um editor de cdigo poderoso

Voc pode criar um arquivo .py, execut-lo e ver o resultado ao lado, no Console. Ou executar duas ou trs linhas diretamente no Console.

A possibilidade de examinar e editar variveis.

A possibilidade de acessar a ajuda online e inspecionar objetos.

E, vejam s: uma srie de outras facilidades.

Um exemplo do ambiente!

Agora vamos ao NumPy.

NumPy: uma abreviao para Numerical Python. J vem com o Python(x,y).

A documentao de Python(x,y) muito boa! Eis como acessar o Manuel do NumPy.

Basta clicar ali para abrir o Manual do mdulo NumPy.

No Manuel temos o Guia do usurio, onde ensinado o bsico. Na Referncia cada funo, objeto ou mdulo descrito detalhadamente.

A cara do dois, do Guia do usurio e da Referncia

Este o ndice completo do Guia do usurio.

Precisaremos s de partes da introduo e do bsico de Numpy.

Este o incio do ndice completo da Referncia ao NumPy.

Usaremos apenas parte desse contedo.

Continuao do ndice.

Acalme-se Surfista - no veremos tudo.


No Numpy h material para muito mais que um curso introdutrio.

Apenas para completar, esta parte final do ndice.

So tpicos mais avanados. Fiz questo de mostrar o agradecimento ao Travis L. Oliphant.

Adivinhando seu pensamento Loirinha, vamos descobrir o que NumPy.

Sim Sherlock, o que o NumPy?

Loirinha, agora sua vez de vestir-se a rigor.

Vamos te apresentar ao cara mais importante de NumPy. Capriche!

Loirinha, tenho a honra e o prazer de te apresentar o objeto ndarray!

Caprichei, Mestra! Mas um homem-objeto?

Bem, voc precisar conhece-lo mais profundamente. Mas, de cara, fique sabendo que: Mestre, prometo que farei o possvel...

Mestre, esse ndarray ocupa o 1 lugar entre os objetos array. importante mesmo!

Fiquei interessada. Desejo conhec-lo mais!

Classe Abc Atributos aaa bbb Mtodos f( ) g( )

Quais so seus atributos ndarray? E seus mtodos? Onde, como e quando nasceu?

Calma minha filha, ele tmido! Mas, recordando Python: uma classe um padro para criao para seus objetos. Elas possuem atributos e mtodos. Cada indivduo (objeto) de uma classe criado com a personalizao os seus atributos e mtodos.

Loirinha, pea ao Manuel para te contar mais.


Ele conhece o ndarray profundamente.

Sugiro esta listinha de perguntas!

Quando cliquei no link (o 1 da listinha da Mestra), o Manuel mostrou o seguinte:

Toda classe possui um ou mais construtores. Usualmente eles so invocados atravs do nome da classe Com os ndarrays no diferente.

Entretanto, alm desses construtores de baixo nvel, a NumPy oferece outros construtores, mais amigveis.

As informaes sobre o construtor de baixo nvel:

No iremos utiliz-lo.

Concordo Mestra, bastam as amigveis.

Esta a lista de todas as rotinas amigveis para criao de arrays.

Mestres, estou ficando confusa com tanta informao.

Pois minha filha, vamos encerrar o baile porque h muita coisa a aprender.

Minha amiga tem razo, tornem as coisas mais prticas!

Ok, Mestra. Vou ensinar nossos pupilos a fazer mgicas.

Mgicas Mestre? T brincando...

Vou iniciar meus pupilos em magias de NumPy! Dumbledore

Cautela Mestre. A magia proibida para muggles (e alunos de graduao...)

Hogwarts

A 1 grande magia de NumPy a vetorizao.

da Hermione

Uma 2 magia, poderosssima, a difuso

Nunca cutuque um drago adormecido

O 1 passo aprender a criar arrays.

A magia da converso:

Tentando converter uma lista num ndarray

A ajuda do ambiente!

Corrigindo o erro e obtendo informaes.

Ih!! Que termos so esses: shape, ndim, size?

So atributos da classe ndarray. Recortei s esses 3. Existem vrios outros atributos e mtodos, que veremos medida que formos usando.

O Mestre clicou nos links e c esto as informaes.

Inclusive com exemplos!

Estes outros atributos que tem a ver mais diretamente com a disposio na memria de um ndarray. Surfista, s tente entender flags e strides depois de ler o texto ao final deste conjunto de slides.

J estes dois so muito simples!

Mas, para mim, ainda no esto claras as diferenas entre shape, ndim e size e voc acrescenta mais 2!

Calma, faremos mais exemplos!

Criando um array 2d, pela converso de uma lista de listas


Agora sim!

Agora um array 3d.

No vejo aplicaes prticas 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.

Nos 3 exemplos s utilizamos o 1 parmetro object que obrigatrio. Os outros parmetros so opcionais, j prdefinidos por NumPy. Leia abaixo uma explicao para cada um.

A continuao... Dois parmetros merecem mais explicaes, dadas a seguir.

O dtype o tipo de dado dos elementos do array. Pode ser um desses:

O parmetro order.

No caso de arrays 2d, ele estabelece se o array ser armazenado na memria por colunas (como FORTAN) ou por linhas (como C e C++).

No deixem de ler o texto ao final deste conjunto de transparncias.

Existem muitas outras rotinas para criao de ndarrays. Vejam:

Agora as rotinas especializadas na criao de sequncias numricas. As numerical ranges.

arange() a irm mais nova e importantssima da funo range() que vocs j usaram muito em Python.

Os parmetros em arange()

Uma diferena entre as duas funes que arange() no opera apenas com nmeros inteiros. Uma outra que arange() retorna um ndarray e no uma lista.

Uma irm da funo arange() a funo linspace().

Esses so os parmetros da linspace() e os possveis valores retornados:

Exemplos de cdigo.

Ns temos mgica, para fazer ...

Usaremos a linspace( ). Tambm veremos a vetorizao e

a difuso em ao.

Observe os vetores x e y!

Neles est a magia da vetorizao e difuso!

x um vetor com 10 valores igualmente espaados de 0 a (inclundo-os).

y o vetor obtido aplicando a funo f diretamente ao vetor x

Nunca v essa funo zip(x,y).

O que ela faz, Mestra?

A mesma coisa que o zipper de sua cala jeans faz, Loirinha. Junta os elementos correspondentes de cada um dos vetores, x e y num novo vetor z cujos elementos zk so as tuplas

zk = ( xk , yk )

Na prxima transparncia vou reescrever, em Python comum, a parte do cdigo que marquei Sem vetorizao e difuso.

Foi necessrio o triplo de linhas. Viva a vetorizao e a difuso!

Nossos alunos precisam aprender mais magias de criao do NumPy!

O Professor Albus Percival Wulfric Brian Dumbledore

Estas outras rotinas criam arrays particulares:

Para mais informaes sobre cada rotina, basta clicar no seu link.

A, array 2x3 de 1s

B, array 2x3 de 0s

So arrays especiais

Para criar um array parecido com um outro, j conhecido.

I, array identidade 3x3 E, array 4x3 com 1s na 2 sobre diagonal

Mais arrays especiais

Como criar um array identidade 2d. No exemplo um 3x3:

Como criar um array 2d eye.

No exemplo um 4x3:

Apesar do ttulo, estas outras rotinas constroem arrays com caractersticas especiais.

s clicar no link.

Matrizes de Vandermonde surgem naturalmente em problemas de interpolao.

Criando matrizes diagonais:

No prximo exemplo vamos criar uma matriz de Vandermonde 4x4 e depois extrair sua diagonal.

Eis como criar a famosa matriz de Vandermonde e mostrar suas diagonais.

Matrizes triangulares desempenharo um papel fundamental no curso.

Criaremos uma matriz A, 4x4, e outras duas: sua parte triangular superior U (de upper) e sua parte triangular inferior (L de lower).

Tchau, at a prxima aula!

Antes de encerrar esta aula, umas dicas para quem j brincou com o MatLab.

TesAuro ou TesOuro?

Onde buscar.

Copyright...

O endereo

A leitura a seguir ajudar a compreender melhor a estrutura interna de um array.

Recortei-a do livro do Travis L. Oliphant

Pag. 1

Pag. 2

Pag. 3

Pag. 4

Pag. 5

Stride = passo

Pag. 6

Pag. final

Mais uma vez, at a prxima aula!

Você também pode gostar