私は、python numpyによって生成された間隔の範囲を持っています。値は期待どおりですが、配列がリストに変換されるとき、値は配列と同じではありません。NumPy配列をリストに変換するときの浮動小数点の不一致
numpy.linspace(0.3,0.7,5)
array([ 0.3, 0.4, 0.5, 0.6, 0.7])
numpy.linspace(0.3,0.7,5).tolist()
[0.3, 0.39999999999999997, 0.5, 0.6, 0.7]
list(numpy.linspace(0.3,0.7,5))
[0.29999999999999999,0.39999999999999997,0.5,0.59999999999999998,
0.69999999999999996]
なぜnumpyはこのように動作しますか?リスト内の値を丸めるために別のループを使用せずに、リスト内の値を配列と同じに保つことはできますか?
ありがとうございます。私はこの問題の理由を理解しました。しかし、numpyの開発者が、tolist()関数のようなオプションを期待値を返すようなものにしなかったのは驚くべきことです。 – user3015703
@ user3015703答えが役に立った場合は、投票を忘れずに回答を受け入れてください。ありがとう:) –
すでに説明をupvotedが、私はまだ問題を解決する方法の答えを得ることを楽しみにしています。つまり、リスト内の値を丸めるためにループを使用する以外の解決策は期待できません。 – user3015703