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   )


[[ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]
 [ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]
 [ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]
 [ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]]

[[ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]
 [ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]
 [ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]
 [ 0.  1.  0.  1.  0.  1.  0.  1.]
 [ 1.  0.  1.  0.  1.  0.  1.  0.]]

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)


[[ 0.5   0.25  0.    1.    0.  ]
 [ 0.25  0.    0.75  1.    0.  ]
 [ 1.    0.25  0.    1.    0.5 ]]

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)


[[ 10.19803903   0.19739556]
 [  6.10327781   0.61072596]
 [  4.27200187   1.28606589]
 [  4.48325774   0.77593472]]

[[ 10.19803903   0.19739556]
 [  6.10327781   0.61072596]
 [  4.27200187   1.28606589]
 [  4.48325774   0.77593472]]

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())


6.0
5.0

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)


[ 1.52019736  1.51921032  1.04904719  1.45684591  1.27031492]

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


1.04904718674 2

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()