P.D.I. em PYthon
Preparação:
Nesta aula vamos aprender criar scripts no ambiente Google Colab, seguindo os seguintes passos:
Bem-vindo PYTHON é uma linguagem de programação, como C++, que tem várias bibliotecas que devem ser incluídas para determinadas finalidades. Fazendo uma analogia, é equivalente a incluir bibliotecas em C++ com o comando "include"
A seguir tem um trecho de programa que inclui algumas bibliotecas básicas que usaremos no curso. Isto é feito usando o comando import. ex:
import numpy
import numpy as np
Inclui a biblioteca básica de processamento de dados científicos. Esta biblioteca tem funções matemáticas muito úteis, como trigonométricas, logaritmos, ou operação de matrizes. Vale a pena dar uma olhada na descrição. Consulte "https://numpy.org/doc/stable/user/whatisnumpy.html"
Você também pode usar a opção:
import numpy as np
Neste caso, você importa a biblioteca numpy mas, em lugar de chamar os comando usando o nome numpy você pode usar um nome mais curto, como np. Isto faz sentido se o nome da biblioteca for muito extenso.
import matplotlib.pylab
import matplotlib.pylab as plt
inclui uma biblioteca que permite plotar figuras e imagens na tela. É muito útil para nossa disciplina.
Copie estas duas linhas no Colab e execute o programa (script). Para rodar este trecho de programa use a tecla play (triângulo). Após uns segundos aparece um sinal verde mostrando que deu certo. Se ocorreu um erro, um texto em vermelho aparece a seguir.
import matplotlib.pylab as plt
Quando necessário, pode inserir textos de comentários em seu Notebook, usando + Texto. Também pode deslocar as janelas de Código ou Texto usando as setas à direita.
Número da sorte:
Para praticar operações matemáticas no Colab, vamos definir duas variáveis e processar a soma delas, atribuindo o resultado a uma terceira variável. Finalmente, podemos imprimir o resultado.
Problema:
Dados seu dia e mês de nascimento, calcule seu "número da sorte" como sendo a suma destes dois valores.
Número da sorte = dia + mês (de nascimento)
Crie um novo espaço para código (+Código) e nele:
Note que é criada uma nova área onde são apresentados os resultados.
Finalmente, vamos plotar este ponto (x=dia e y=mes) usando a biblioteca matplotlib (ou plt). Juntando...
import matplotlib.pylab as plt
mes=10
dia=23
c=dia+mes
print(c)
plt.plot(dia,mes, '*')
Com base nesse gráfico, calcule:
* a tangente do ãngulo entre a reta que passa pela origem e o ponto e o eixo horizontal (x=dia).
a função tangente encontra-se disponível na biblioteca numpy. Procure informação na internet.
Vetores são conjuntos de valores com tamanho definido. Por exemplo, a temperatura média mensal pode ser armazenada como um vetor de 12 elementos.
Em Python, pode-se definir um vetor com os valores ou criar um vetor vazio e depois atribuir os valores.
import matplotlib.pylab as plt
temp=[ 26, 27, 25, 23, 21, 12, 10, 13, 14, 15, 16,19]
plt.plot(temp)
Podemos ter acesso a cada um destes elementos
for i in range(tam):
      Comando
      Comando
isto cria um loop variando a variável "i" de 0 até tam-1. Em nosso caso 0-11.
É necessário usar dois pontos no final da linha onde está iniciando o loop.
Tudo o que for repetido neste loop deve ser deslocado para direita (TAB) para mostrar o escopo do loop.
for i in range(tam):
print("mes=",i, "temperatura=",temp[i])
Agora vamos gerar duas séries de 100 elementos X[i] e Y[i], com i variando de 0-99, com as seguintes funções:
Para isto, devemos criar dois vetores de 100 elementos vazios com a função zeros de numpy, Esta função cria um arrays de tamanho especificado, com elementos todos nulos.
a seguir, atribuimos a cada elemento, desde o elemento 0 ao elemento 99, o valor da função especificado.
Podemos pedir para ver alguma variável usando print. Por exemplo, a variável que descreve o tamanho do array (tam) ou um dos arrays.
Finalmente, plotamos estes pontos. Para isto usamos a biblioteca matplotlib, que importamos como plt.
Esta biblioteca oferece o comando plot(). EM PYTHON devemos construir primeiro o gráfico e depois pedir para mostrar.
import matplotlib.pylab as plt
tam=100 # definimos o tamanho do vetor
X=np.zeros(tam,dtype = float) # Cria vetor com zeros, de tamanho tam
Y=np.zeros(tam,dtype = float)
print(tam)
print(X)
for i in range(tam): # varremos todos os elementos dos vetores, de 0 a 99 (tam-1)
X[i]=i*i# atribuir valor a cada elemento
Y[i]=1/(i+1)
plt.plot(X,Y ) # apresentar o resultado
plt.show()
Podemos entender uma matriz como um "vetor" de vetores. Um arranjo bidimensional de valores.
Em Python, podemos definir os valores da matriz manualmente, como no exemplo abaixo:
import matplotlib.pylab as plt
M=[ [ 9, 3, 1], [4, 16 ,2], [10 ,5 ,25] ] # define os valores da matriz 3x3
print(M)
Também podemos criar uma matriz de tamanho especificado com valores todos nulos usando a função zeros de numpy, e alterar um de seus elementos diretamente.
M[4,6]=10 # mudamos o valor do elemento na posição 4,6 para 10
Print(M)
Desafio
Crie uma matriz 9 por 9 cheia de zeros e alterar o valor de sua diagonal principal para 10, usando um Loop cim o comando for... in range.
Neste exercício deseja-se calcular a média local em uma determinada região da matriz. a Média local é definida como a média do valor da célula e as oito vizinhas em torno dela. Por exemplo, na figura abaixo, calculariamos a média da célula na linha 4 e coluna 2 considerando os valores em torno dela também.
Para isto, criamos primeiro uma matriz 10x10 com números inteiros aleatórios.
import matplotlib.pylab as plt
Y= np.array( [[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[2, 3, 4, 5, 6, 7, 8, 9, 0, 1],
[11, 2, 3, 41, 5, 6, 7, 81, 9, 0],
[11, 32, 4, 25, 16, 7, 8, 91, 20, 1],
[11, 22, 3, 4, 25, 6, 7, 8, 29, 20],
[11, 32, 41, 25, 16, 7, 8, 91, 20, 1],
[21, 22, 31, 4, 25, 6, 7, 88, 29, 20],
[31, 32, 42, 25, 16, 7, 81, 91, 20, 1],
[41, 22, 3, 4, 25, 6, 7, 8, 29, 20],
[2, 3, 4, 5, 6, 7, 8, 29, 20,21] ], dtype=float )
print(Y)
Y = np.random.randint(100, size=(10, 10))
Aqui, 100 limita o valor máximo a ser gerado, ou seja, produziremos valores entre 0 e 99.
import matplotlib.pylab as plt
Y = np.random.randint(100, size=(10, 10))
print(Y)
A notação Y[linha-1:linha+2, coluna-1:coluna+2] seleciona uma submatriz 3x3 centrada em (linha, coluna).
coluna=4
A=Y[linha-1:linha+2 , coluna-1:coluna+2]
print(A)
Finalmente, calculamos a media desta região
for fila in A:
for elemento in fila:
soma += elemento
media = soma / 9 # 9 elementos na vizinhança 3x3
print(' A média é:' , media)
Agora, tente você mesmo escrever seus programas. A seguir algumas sugestões: