所以我有一个工作中的读板器,它只会将结果输出到像这样的纯文本文件中
1 2 3 4 5 6 7 8 9 10
A 1.551 0.686 0.613 3.823 1.356 3.117 1.941 1.454 0.820 3.346
B 3.811 3.403 3.782 3.811 3.474 3.811 3.811 3.811 0.396 0.378
C 1.278 3.816 3.816 3.816 3.766 3.816 3.329 3.816 1.625 3.816
D 1.354 1.689 1.182 3.819 3.819 1.241 1.099 2.826 1.780 2.018
E 3.816 1.970 3.807 3.816 3.489 0.407 3.816 3.816 3.030 2.663
F 3.622 1.080 0.846 0.574 3.169 2.313 1.113 1.166 1.567 1.983
G 0.782 2.101 1.681 0.494 1.865 1.920 1.819 1.183 0.770 1.686
H 2.561 1.046 2.009 2.410 0.751 3.814 2.703 0.799 1.935 3.814
我正在尝试编写代码,将 float 从表中读取到二维列表中,然后操作它们。我可以轻松地编写操作部分的代码,但在将数据放入列表时遇到问题。主要问题是两种不同的变量类型。到目前为止我已经:
import numpy as np
local = input ("enter the file location: ")
data = [np.array(map(int, line.split())) for line in open(local)]
最佳答案
您的解决方案很接近。第一行只是列索引,因此您可以跳过它。第一列是行索引,也可以跳过。并且您的数据是float
,而不是int
。
此外,使用上下文管理器来管理您的资源,使用with
语句,文件会自动关闭。在简短的脚本中可能不会产生什么影响,但这是一个值得养成的好习惯。
import numpy as np
local = input ("enter the file location: ")
with open(local) as f:
f.readline() # skip column indices
data = [np.array(map(float, line.split()[1:])) for line in f]
关于python - 将txt表转换为二维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722544/