Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resumo da atividade com NumPy

Resumo da atividade com NumPy

Por Ricardo Costa Val do Rosário e Microsoft Copilot

Enunciado:

Você começou os seus estudos com a biblioteca Numpy e resolveu utilizá-la para substituir
um cálculo que estava sendo realizado com listas do Python. A lista que você tem em mãos é igual a:

x = [0,1,2,3,4,5,6,7,8,9,10]

Essa lista estava sendo utilizada para calcular os diversos valores de y na equação y = x + 3 / 2.
Como ficaria o código em Numpy para substituir o seguinte trecho de código?

x = [0,1,2,3,4,5,6,7,8,9,10]
y = []

for i in x:
  y.append(i + 3 / 2)

Dica:

Execute o código acima antes e verifique os valores nas variáveis x e y com a função print() para comparar
os resultados do array.

RESPOSTA PASSO A PASSO

PASSO 1

x = [0,1,2,3,4,5,6,7,8,9,10]
y = []

for i in x:
    y.append(i + 3 / 2)

PASSO 2 - Aqui está o que acontece:

  1. A lista x contém os números de 0 a 10.

  2. O loop percorre cada elemento i em x.

  3. A expressão i + 3 / 2 é avaliada como i + 1.5, já que 3 / 2 = 1.5.

  4. Cada resultado é adicionado à lista y.

Resultado final da lista y:

[1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5]

Transformamos o código em Python que calculava os valores de y = x + 3 / 2 usando listas e for,
em uma versão mais eficiente com NumPy:

Passo 3 - código completo com a verificação dos valores usando print():

x = [0,1,2,3,4,5,6,7,8,9,10]
y = []

for i in x:
    y.append(i + 3 / 2)

print("Valores de x:", x)
print("Valores de y:", y)

Passo 4 - Quando você executar esse código, verá:

Valores de x: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Valores de y: [1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5]

Passo 5 - versão mais compacta e elegante com NumPy:

import numpy as np

x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = x + 3 / 2

print("Valores de x:", x)
print("Valores de y:", y)

Passo 6 - O que mudou:

  1. Criamos o array x usando np.array(), que permite operações vetoriais.
  2. A expressão x + 3 / 2 é aplicada diretamente a todos os elementos do array, sem precisar de loop!
  3. Resultado: mais limpo, mais rápido e muito mais "Pythonic".

Passo 7 - Resultado de y:

[ 1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5 10.5 11.5]

Passo 8 - Resumo da atividade com NumPy

Transformamos o código em Python que calculava os valores de y = x + 3 / 2 usando
listas e for, em uma versão mais eficiente com NumPy:

import numpy as np

x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = x + 3 / 2

print("Valores de x:", x)
print("Valores de y:", y)

Passo 9 - CONSIDERAÇÕES FINAIS

Vantagens do uso do NumPy:

  1. Código mais simples e legível.
  2. Operações vetoriais diretas, sem loop.
  3. Resultado mais rápido e eficiente para manipulação numérica.

Saída esperada:

Valores de x: [ 0  1  2  3  4  5  6  7  8  9 10]
Valores de y: [ 1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5 10.5 11.5]
1 resposta
solução!

Olá, Ricardo! Como vai?

Você produziu um excelente resumo!

Observei que você explorou o uso de arrays NumPy para simplificar operações matemáticas, citou muito bem o broadcasting para aplicar a operação em todos os elementos de forma vetorial e ainda compreendeu a importância do código limpo e performático para tarefas numéricas.

Permaneça postando os seus projetos, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!