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

[Dúvida] Dúvida a respeito de código.

x = np.random.randint(0,10,11)
y = []

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

print(y)

Esse foi o código que eu fiz, a luri disse que estava meio certo, mas eu não estou vendo como melhorar e ela também não me diz qual é a resposta para eu enxergar onde eu posso melhorar e o que eu tenho que aprender para otimizar isso. Venho estudando python a pouco tempo e estudei muito os laços de repetição, daí é sempre a forma que eu vejo para estruturar os códigos.

1 resposta
solução!

Oi Dalton, tudo bem?

A Luri provavelmente disse que seu código estava "meio certo" porque você ainda está utilizando um loop for, enquanto o objetivo da atividade é substituir essa estrutura por operações vetorizadas do NumPy. O grande benefício do NumPy é justamente eliminar laços de repetição em cálculos numéricos, tornando as operações mais rápidas.

Além disso, o exercício pede para trabalhar com a lista fixa x = [0,1,2,3,4,5,6,7,8,9,10], mas seu código gera valores aleatórios. Embora a lógica do seu código esteja correta, esses motivos explicam por que a Luri indicou que a resposta não estava completamente certa.

Por isso a solução mais rápida é transformar a lista em array, como mostra a alternativa assinalada como correta:

import numpy as np

x = np.array([0,1,2,3,4,5,6,7,8,9,10])  # Transformando a lista em um array NumPy
y = x + 3 / 2  # Operação vetorizada, sem loop

print(y)

Espero ter esclarecido.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado