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)
z = np.array([[1,2],[3,4]]) -- aqui definimos um array com 2 dimensões
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
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
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]
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))
Comentários
Enviar um comentário