我有一个包含字符串和浮点数的txt(见下文),我需要在矩阵中加载数据。最好的方法是什么?
虚拟数据行:
1 2 3.0 4.567 8.910 Data/file.txt
以下是我的(非工作)代码。它不会返回前三个变量,也不会包装。
import numpy as np
import scipy
matrix = []
with open('input.txt') as f:
for line in f:
el = line.split()
matrix.append(el[0] + el[1] + el[2] + el[3] + el[4] + el[5])
print matrix
答案 0 :(得分:1)
每行的条目数是否相同?如果是这样,我建议使用pandas。使用read_csv
功能并将分隔符指定为\s+
。
如果您希望它是表格式的,请将其存储在数据框中。
答案 1 :(得分:1)
这对我有用。 for循环的缩进是否是拼写错误?
import numpy as np
import scipy
matrix = []
with open('input.txt') as f:
for line in f:
el = line.split()
matrix.append(el[0] + el[1] + el[2] + el[3] + el[4] + el[5])
print matrix
输出:['123.04.5678.910Data / file.txt']
答案 2 :(得分:0)
您可以numpy.genfromtxt
使用dtype=None
:
>>> import numpy as np
>>> np.genfromtxt('input.txt', dtype=None)
array((1, 2, 3.0, 4.567, 8.91, 'Data/file.txt'),
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<f8'), ('f3', '<f8'), ('f4', '<f8'), ('f5', 'S13')])