エミール:
Pythonでは、なぜ、反復プロセスでそれらを印刷、または配列全体を印刷するため、値の変更をnumpyのを使用して、私はこれをどのように修正することができますか?私は彼らが0.8の代わりに、0.799999999を例えばするしたいと思います...
>>> import numpy as np
>>> b = np.arange(0.5,2,0.1)
>>> for value in b:
... print(value)
...
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.1999999999999997
1.2999999999999998
1.4
1.4999999999999998
1.5999999999999996
1.6999999999999997
1.7999999999999998
1.8999999999999997
>>> print(b)
[0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9]
>>>
謎:
Pythonとnumpyの使用がために発生小数点演算浮動いくつかの数字は、すなわち0.1、正確に表現することができません。また、チェックのpython浮動小数点の問題&制限を。
あなたはこのためにnumpyののnp.aroundを使用することができます。
>> b = np.around(b, 1) # first arg is the np array, second arg is the no. of decimal points
>> for value in b:
print(value)
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9