2

我有一个格式为:

1    2.5264    24106644528  astring

我想导入数据。我在用:

>>> numpy.genfromtxt('myfile.dat',dtype=None)

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    numpy.genfromtxt('myfile.dat',skip_header=27,dtype=None)
  File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 1691, in genfromtxt
    output = np.array(data, dtype=ddtype)
OverflowError: Python int too large to convert to C long

我检查了我的(32 位)系统上的最大整数:

>>> import sys
>>> sys.maxint
2147483647

有没有办法增加整数限制?或者我可以用另一种方式解决我的导入问题(不把'.0'放在文件中的所有整数之后)?

4

1 回答 1

2

意识到我可以做到这一点:

>>> numpy.genfromtxt('myfile.dat',dtype=['i4','f8','f8','a14'])

array((1, 2.5264, 24106644528.0, 'astring'), 
  dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '<f8'), ('f3', 'S14')])
于 2013-08-15T13:30:23.000 回答