Python - Numpy: np.LEN, np.SHAPE, np.RESHAPE, .MAX(), .MIN(), np.SQRT, np.EXP, Matrizes

 Vamos continuar com as funções do NUMPY:

LEN ----------------------------------------------------------------------------------------------------

Imaginemos que temos o seguinte array:

import numpy as np -- importamos o Numpy

lista = [1,2,3,4] -- criamos uma lista

y = np.array(lista) -- transformamos a lista num array

Agora queremos saber quantos elementos tem esse array:

len(y)


Podemos verificar que o array y tem 4 elementos: 1,2,3 e 4

SHAPE ------------------------------------------------------------------------------------------------

Imaginemos agora que queremos saber a forma do mesmo array. Neste caso, para o nosso array y, apenas teremos uma pois é unidimensional:

np.shape(y)


Podemos ver que tem apenas uma dimensão. Mas e se tivermos um array com 2 dimensões ?

z = np.array([[1,2],[3,4]]) -- aqui definimos um array com 2 dimensões


Como podemos ver, agora o output de np.shape(z) é 2,2 . 2 elementos horizontais por 2 verticais. 

RESHAPE -------------------------------------------------------------------------------------------------------

Então e se quisermos pegar num array e remodelá-lo ?

Imaginemos que temos o seguinte array (tem de ser com total de elementos pares para funcionar):

y = np.array([1,2,3,4,5,6,7,8]) -- definimos um array y

Agora queremos colocá-lo numa forma de 2 linhas e 4 colunas:

y.reshape(2,4)

Como podemos ver abaixo, dividimos o array y em 2 linhas com 4 elementos cada.

MAX, MIN, INDEX ---------------------------------------------------------------------------------------------

De seguida vamos pegar no mesmo array y e descobrir o máximo valor e o mínimo valor presentes no array:

y.max() -- para o valor mais elevado

y.min() -- para o menor valor



Então e se quisermos saber o seu valor de index ?

Para o index do valor mais alto:

y.argmax()

Para o index do valor mais baixo:

y.argmin()



Vemos que o valor mais alto tem o index 7, pois o zero também conta e que o valor mais baixo tem precisamente o valor zero que é o primeiro no array.

OPERAÇÕES MATEMÁTICAS -----------------------------------------------------------------------------

Consideremos os seguintes dois arrays:

a = np.arange(1,5)
b = np.arange(6,10)

Podemos somar todos os elementos destes dois arrays num novo array:

c = a + b

Podemos definir um novo array que seja a elevado a 2:

d = a ** 2

Podemos fazer a raiz quadrada de todos os elementos de d:

e = np.sqrt(d)

E até um novo array que seja o exponencial de todos os elementos de b:

f = np.exp(b)



SLICING e INDEXING ----------------------------------------------------------------------------------

Considerando que temos um array a:

a = np.random.randint(1, 10, 10) 

Dissemos que queríamos nºs aleatórios de 1 a 10, 10 elementos.

Para sabermos o index do primeiro elemento:

a[0]

Para sabermos os primeiros três elementos:

a[0:3]

Para substituirmos os primeiros 5 elementos por um número (neste caso 7):

a[0:5] = 7


Agora vamos fazer estas operações mas com uma matrix de várias dimensões:

Definimos então uma matrix com 5x5, com números aleatórios de 1 a 10:

matrix = np.random.randint(1,10,(5,5))



Se quisermos por exemplo escolher apenas a terceira fila:

matrix[2]



Se quisermos escolher o terceiro elemento da primeira fila:

matrix[0][2] -- a row é a 0 e o elemento é o 2

Se quisermos escolher todas as filas até à terceira:

mini_matrix = matrix[:2] -- fazemos uma nova matrix que inclua todas as filas até à terceira


Se por outro lado quisermos escolher todas as filas depois da segunda:

mini_matrix = matrix[2:]


E se quisermos escolher os últimos 3 elementos da terceira fila:

mini2 = matrix[2][2:5]


Então e se quisermos apenas por exemplo as duas primeiras colunas ?

mini3 = matrix[:,:2]
mini3

Neste caso temos de especificar primeiro quantas filas queremos, meter uma vírgula e depois especificar quantas colunas queremos. Neste caso queremos todas as filas, daí o ":" e queremos todas as colunas do zero ao dois (:2). Se quisermos tudo colocamos ":". Se quisermos especificar o número de elementos temos de os descrever, por exemplo 0:2 para as filas e 0:2 para as colunas.

[filas , colunas] 


SELECÇÃO DE ELEMENTOS ------------------------------------------------------------------------------

E como filtrar elementos dentro de uma matriz ?
Consideremos a seguinte matriz de 5x5:

matrix = np.random.randint(1,10(5,5))


Se quisermos todos os elementos desta matrix que sejam maiores que 3:

new_matrix = matrix[matrix>3]


Ou que sejam divisíveis por 2:

matrix1 = matrix[matrix%2 == 0]










Comentários

Mensagens populares deste blogue

Python - Gerador de nomes aleatórios: V2.0

Python - Jogo de adivinhar números !