我有一个看起来像这样的文件,它有大约80,000行:
-1.1361818e-001 4.1730759e-002 -9.8787775e-001 9.7195663e-002
-1.1361818e-001 4.1730759e-002 -9.8787775e-001 9.7195663e-002
-1.1361818e-001 4.1730759e-002 -9.8787775e-001 9.7195663e-002
-1.1361818e-001 4.1730759e-002 -9.8787775e-001 9.7195663e-002
我想使用numpy和scikit,并希望将文件写入数组,以便它看起来像这样:
array = [[-1.1361818e-001,4.1730759e-002,-9.8787775e-001,9.7195663e-002],[-1.1361818e-001 ,4.1730759e-002,-9.8787775e-001,9.7195663e-002]...]
我在https://stackoverflow.com/a/10938021/1372560
找到了以下示例我试图让它适应我的例子:
import numpy as np
a = np.loadtxt("/path2file", delimiter="\t")
print a
我收到错误“ValueError:float()的无效文字:-1.1361818e-001 4.1730759e-002 -9.8787775e-001 9.7195663e-002”
我真的被困在这里,感谢你的帮助。非常感谢提前!
答案 0 :(得分:3)
这对我有用:
import numpy as np
a = np.loadtxt("a.txt")
print a
输出:
[[-0.11361818 0.04173076 -0.98787775 0.09719566]
[-0.11361818 0.04173076 -0.98787775 0.09719566]
[-0.11361818 0.04173076 -0.98787775 0.09719566]
[-0.11361818 0.04173076 -0.98787775 0.09719566]]
答案 1 :(得分:1)
只需将delimiter
字段留空,然后它就会在任何空格处分割。 \t
只是一个空白字符。:
演示:
>>> import numpy as np
>>> from StringIO import StringIO
>>> c = StringIO("1.234\t1.23456 1.234234")
>>> np.loadtxt(c)
array([ 1.234 , 1.23456 , 1.234234])
来自docs:
delimiter : str, optional
The string used to separate values. By default, this is any whitespace.