decimais extras em matriz numpy? [duplicado]
Esta questão já tem uma resposta aqui:
Precisão de texto de ponto flutuante em Python / numpy 3 respostasDigamos que eu tenha uma lista de carros alegóricos e uma matriz numpy que desejo zipar:
>>> import numpy as np
>>> n1 = [0.9, 1.1]
>>> n2 = np.array([0.9,1.1])
>>> zip(n1,n2)
[(0.9, 0.90000000000000002), (1.1, 1.1000000000000001)]
Por que estou recebendo todos esses decimais? Existe uma maneira de fazer os flutuadores numpy se comportarem como floats de python?
EDIT: Parece que os cálculos também são afetados pela forma como numpy armazena floats:
>>> nb1 = n2[1]+0.1
>>> nb1
1.2000000000000002
>>> nb2 = nb1 - 1.2 #nb2 should be equal to 0
2.2204460492503131e-16
>>> nb3 = np.asscalar(nb2)
>>> nb3
2.2204460492503131e-16 #nb3 should be equal to 0
>>> type(nb3)
float