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.
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.])
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, :)