Exercício 01: Uma matriz xadrez segue o seguinte padrão:
[[0,1]
[1,0]]
Construa uma matriz 8x8 na variável matriz
com esse padrão.
Faça uma variável matriz2
, também 8x8, sem utilizar o comando for
.
In [17]:
# crie uma matriz 8 x 8 com valores em forma de xadrez 0,1
import numpy as np
print (matriz)
print ()
print (matriz2 )
Exercício 02: Uma matriz normalizada é definda por:
$$ n_{ij} = \frac{a_{ij} - min(A)}{max(A)-min(A)} $$Normalize a matriz abaixo.
In [19]:
# normalize uma matriz
matriz = np.array( [[3.,2.,1.,5.,1.],[2.,1.,4.,5.,1.],[5.,2.,1.,5.,3.] ] )
print (matriz)
Exercício 03: A matriz Z representa uma matriz com coordenadas cartesianas, converta cada linha para coordenada polar, dado que:
$$ X, Y -> \rho, \theta \\ \rho = \sqrt(X^2 + Y^2) \\ \theta = arctan2(Y,X) $$Faça utilizando laço for
(em Z2) e sem usar laços (Z3).
In [22]:
# converter matriz N x 2 representando coordenadas cartesianas em polares
Z = np.array([[10.,2.],[5.,3.5],[1.2,4.1],[3.2,3.14]])
Z2 = np.zeros_like(Z)
Z3 = np.zeros_like(Z)
print (Z2)
print ()
print (Z3)
Exercício 04: Substitua o maior valor da matriz Z por 0 e mostre o novo maior valor
In [23]:
# função que substitui o maior valor por 0 e retorna o maior valor
Z = np.array([1.,2.,3.,4.,5.,6.])
print (Z.max())
Exercício 05: Dado um vetor X e uma matriz Y, construa um vetor D em que cada elemento i é a distância Euclidiana entre X e o i-ésimo elemento de Y.
In [27]:
# calcule a distância euclidiana entre x e uma matriz de pontos Y
X = np.array([ 0.17, 0.59, 0.75, 0.78,0.47, 0.10, 0.06,0.37,0.66,0.10])
Y = np.array( [[ 0.82, 0.96, 0.53, 0.61, 0.76, 0.3, 0.95, 0.81, 0.53, 0.84],
[ 0.7, 0.49, 0.07, 0.12, 0.87, 0.73, 0.73, 0.39, 0.46, 0.37],
[ 0.54, 0.79, 0.66, 0.27, 0.79, 0.33, 0.36, 0.83, 0.22, 0.17],
[ 0.96, 0.63, 0.5 , 0.88, 0.45, 0.9, 0.12, 0.92, 0.7 , 0.79],
[ 0.6 , 0.02, 0.39, 0.29, 0.33, 0.07, 0.35, 0.31, 0.38, 0.84]])
print (D)
Exercício 06: Mostre o elemento com a menor distância de X e qual é essa distância.
In [28]:
# encontre o ponto mais próximo do exercicio anterior
Exercício 07: Esse é o Mario, personagem famoso da Nintendo:
In [44]:
# antes de tentar esse exercício, digite no prompt de comando: conda install scikit-image e reinicie o notebook
%matplotlib inline
import matplotlib.pyplot as plt
from skimage import data, io, filters
mario = io.imread('mario.gif')
plt.figure(figsize=(4, 4))
plt.imshow(mario)
plt.axis('on')
plt.grid(True)
plt.show()
Ele é representado por uma matriz tridimensional de dimensões $133 \times 100 \times 3$, representando a altura, largura e as cores. A dimensão das cores representa a intensidade das cores Vermelho, Verde e Azul, respectivamente, com um valorde 0 a 255.
Exemplo:
mario[0,0,:] = [255, 255, 255]
Temos intensidade máxima nas três cores, que forma a cor branca. Faça um algoritmo que percorra a imagem do Mario e, toda vez que encontrar um pixel de cor (112, 104, 0), troque ele para azul ([0,0,255]) ou preto ([0,0,0]) dependendo da altura desse pixel (o cabelo, bigode e sapato devem ser pretos, a blusa deve ser azul).
In [45]:
In [46]:
plt.figure(figsize=(4, 4))
plt.imshow(mario)
plt.axis('off')
plt.show()