0

假设我有一个数据文件,里面有这个:

23 33 45
91 81 414
28 0 4 
7 9 14
8 9 17
1 1 3
38 19 84

我怎样才能将它导入一个列表,以便每个单独的数字它自己的项目?

4

2 回答 2

0

您可以使用 numpy loadtxt 将数据文件读取到 numpy 数组

  from numpy import loadtxt
  a,b,c = loadtxt("filename", usecols=(0,1,2), unpack=True)

输出

  a = array([23, 91, 28, 7, 8, 1, 38])
于 2012-11-28T17:18:19.123 回答
0

您也可以使用 python 内置函数,如打开文件、拆分和读取行

with open('file.txt') as f:
for line in f:
  a, b, c = map(int, line.split())

另一种方法是

 file                = open(filename)
 file_data           = file.readlines()

但是,输出将是一个字符串列表。也就是说,列表中的每个元素将代表文件中的一行。如果您使用上面的代码,输出将如下所示

 file_data = ['23 33 45', '91 81 414', '28 0 4 ', '7 9 14', '8 9 17', '1 1 3', '38 19 84']

您可能希望它们转换为 float 或 int。你可以再次使用 numpy 的 fromstring 模块来做到这一点

  from numpy import fromstring
  data = [fromstring(i, dtype=float, sep=' ') for i in file_data ]

请注意,我在上面的代码中使用了列表推导(这比传统的 python for 循环要快。)

于 2012-11-28T17:35:24.323 回答