AttributeError: module 'numpy' has no attribute 'float'
Erro de Python · NumPy 1.24 e posteriores
np.float era só outro nome para o float do próprio Python. O NumPy o marcou como obsoleto na 1.20 e o removeu na 1.24 (dezembro de 2022), junto com np.int, np.object, np.str e np.complex. O resto da mensagem de erro diz o que usar no lugar.
Por que acontece
Esses nomes apenas apontavam para os tipos nativos do Python e eram fáceis de confundir com os tipos do próprio NumPy, como np.float64. Código escrito antes de 2023 muitas vezes ainda os usa. O NumPy 2.0 (junho de 2024) removeu mais nomes, entre eles np.NaN, np.Inf, np.float_ e np.product.
Como corrigir
Use o nome nativo; o código faz exatamente o que fazia antes:
Antes
values = np.array(raw, dtype=np.float)
count = np.int(values.sum())
Depois
values = np.array(raw, dtype=float)
count = int(values.sum())
Se você quer o tipo do próprio NumPy, escreva np.float64 ou np.int64. Para os nomes que o NumPy 2.0 removeu: np.NaN → np.nan, np.float_ → np.float64, np.product → np.prod.
No NoteRun
O NoteRun verifica o notebook antes de você executá-lo e encontra esses nomes seja qual for o nome dado ao NumPy no notebook (np ou outro). Corrigir tudo troca todos os nomes removidos, do NumPy 1.24 e do 2.0, com um toque. Nada muda até você tocar, você vê cada mudança antes, e Desfazer traz o notebook de volta.