Universidade Federal de Pernambuco – UFPE Centro de Informática
Sistemas de Informação IF968 – Programação 1 Professor: Renato Vimieiro
Lista de exercícios práticos 3 – Vetores e matrizes Entrega: 27/04/16
Instruções
• Faça os algoritmos em python.
• Faça um algoritmo por arquivo.
• Utilize o template disponível no site da disciplina
Vetores e matrizes em Python usando NumPy
Os vetores e matrizes em Python/NumPy podem ser instanciados das seguintes formas:
x = numpy.zeros([<dim1>, <dim2>, ..., <dimN>],dtype=<type>) y = numpy.ones([<dim1>, <dim2>, ..., <dimN>],dtype=<type>) z = numpy.empty([<dim1>, <dim2>, ..., <dimN>],dtype=<type>) w = numpy.full([<dim1>, <dim2>, ..., <dimN>],valor,dtype=<type>)
A primeira opção cria uma estrutura N-dimensional cujos elementos são todos zeros, enquanto a segunda cria uma estrutura com uns. A terceira cria uma estrutura N-dimensional sem inicializar os valores, enquanto a quarta cria tal estrutura preenchendo todas as posições com o valor informado. Os tamanhos de cada uma das N dimensões devem ser colocados entre parêntesis e separados por vírgulas. O tipo de dados pode ser um dos seguintes:
bool Boolean (True or False) stored as a byte
int Default integer type (same as C long; normally either int64 or int32) intc Identical to C int (normally int32 or int64)
intp Integer used for indexing (same as C ssize_t; normally either int32 or int64) int8 Byte (-128 to 127)
int16 Integer (-32768 to 32767)
int32 Integer (-2147483648 to 2147483647)
int64 Integer (-9223372036854775808 to 9223372036854775807) uint8 Unsigned integer (0 to 255)
uint16 Unsigned integer (0 to 65535) uint32 Unsigned integer (0 to 4294967295)
uint64 Unsigned integer (0 to 18446744073709551615) float Shorthand for float64.
float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa complex Shorthand for complex128.
complex64 Complex number, represented by two 32-bit floats (real and imaginary components) complex128 Complex number, represented by two 64-bit floats (real and imaginary components) string Python strings (tamanho fixo)
unicode Texto em unicode object Objetos em Python
Outros tipos mais complexos podem ser construídos utilizando-se dtype. Porém, a construção de tipos mais avançados foge ao escopo dessa disciplina e não será visto aqui.
Exemplo: deseja-se instanciar um vetor de inteiros com 10 elementos, uma matriz de reais 20x30 e um vetor de 50 strings com até 10 símbolos. Deve-se fazê-lo como:
x = numpy.empty((10),dtype="int") y = numpy.ones((20,30),dtype="float") z = numpy.empty(50,"S10")
Da mesma forma que em pseudocódigo, em Python, os elementos das matrizes são indexados por valores entre 0 e n-1 (inclusive). Há uma diferença, contudo, quanto a indexação de variáveis com mais de uma dimensão. Ao contrário de pseudocódigo, pode-se também indexar os elementos de uma matriz da seguinte forma:
1