空白スペースで区切られた数字の列を持つ大きなデータ ファイルがあります。それらをnumpy配列として読みたいと思います。
ファイルnumpy.loadtxt(filename)
を読み込んでいました。問題は、コードがこの 19 桁の文字列を数値に変換しようとしたときに発生しました。最初の 17 桁しか正確に表現できないようです。
簡単な例を次に示します。
from StringIO import StringIO
import numpy as np
#use this s string to mimick the input txt file
s = StringIO('1237657220412736271 39843.3948')
arr = np.loadtxt(s)
print int(arr[0])
あなたがそれを実行すると、あなたは得る
1237657220412736256
から持っているデータの種類を指定できることは知っていますがnp.loadtxt()
、最初の数値を長整数として読み取るように指定しても、19 桁の数値の文字列を正確に表すことはできません。
これを行うより良い方法はありますか?