1
resposta

Diferenças nos laços: list e numpy array

Olá, tudo bem?

Sobre os códigos abaixo:

%time for _ in range(100): np_array *= 2

%time for _ in range(100): py_list = [x * 2 for x in py_list]

Na lista py_list é necessário um laço( [x * 2 for x in py_list] )para atuar nos itens. E na np_array, não. Isso se deve a uma funcionalidade da biblioteca Numpy?

1 resposta

Oii Fábio! Tudo certinho?

Os arrays numpy nos permitem fazer operações mais diretas, sem a necessidade de percorrermos cada um dos elementos daquele array. Quando fazemos np_array *= 2 o array já entende que cada um de seus elementos deve ser multiplicado por 2.

Por outro lado, as listas não possuem essa propriedade. Então, se quisermos alterar os elementos de uma lista, devemos utilizar um laço para percorre-la e mudar cada um dos elementos por vez. Por isso que fazemos py_list = [x * 2 for x in py_list].

Espero que tenha ajudado!

Se ficar com alguma dúvida é só avisar, tá bom? Estarei por aqui.

Bons estudos!