1
resposta

Porque a multiplicação funciona e a divisão, não? (Operações com arrays)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Lyse :)

Tudo bem?

Esse erro se dá porque o numpy não aceita fazer a conversão do tipo dos elementos do array km da forma que você está fazendo. Tu pode tá se perguntando onde que tá sendo feita essa transformação. Então vamos lá.

Quando utilizamos o /, automaticamente o Python converte o resultado para float. A gente pode constatar isso com um exemplo mais simples:

x = 10

x /= 2
print(f"Saída: {x} do tipo {type(x)}")

Saída:


Saída: 5.0 do tipo <class 'float'>

Percebe que antes x era do tipo int e depois de usar o operador / virou float? Então é isso que o Python está tentando fazer com o np.array e o numpy não está aceitando. Para resolver isso temos várias opções, vou mostrar aqui 2 formas.

1:

Você pode converter o tipo dos elementos do array com o parâmetro dtype:

import numpy as np

km = np.array([100, 200, 300], dtype=np.float64)
km *= 2
km /= 2
km

Saída:

array([100., 200., 300.])

2:

Já definir os dados como float desde do início:

import numpy as np

km = np.array([100.0, 200.0, 300.0])
km *= 2
km /= 2
km

Saída:

array([100., 200., 300.])

Caso ainda não tenha dado para entender, você pode entrar em contato novamente por aqui mesmo.

Espero ter ajudado, :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!