加载多个文件并将其另存为变量

时间:2017-06-26 20:45:52

标签: python numpy data-manipulation

我需要从不同的文件加载数据并将其保存为数组。我有多个名为file.n.project.dat的文件,其中n是1-100。到目前为止,似乎使用numpy是最好的开始方式。每个文件都是一个5乘5的数组。我需要能够在我的代码中添加/增加数组。

现在我有这个代码来加载数据但是如何让每个文件成为它自己的变量?

import numpy as np
for i in range(1,101):
    np.loadtxt('file.' + str(i) + '.project.dat')

所以我需要做的是加载多个文件并为每个文件创建一个变量。

我以前的帖子使用vars()来创建变量,但我无法为我的问题做好工作。

3 个答案:

答案 0 :(得分:3)

您可以尝试将每个值附加到列表中,然后尝试逐个访问列表元素以获取值。 import numpy as np l = [] for i in range(1,101): l.append(np.loadtxt('file.' + str(i) + '.project.dat')) print l

我相信你的问题应该以这种方式解决。我将拥有你想要的所有价值。

答案 1 :(得分:1)

不是为要从磁盘加载的每个数组创建一个新变量,而是将它们全部存储在一个集合中,例如列表或字典。

例如:

import numpy as np

# As a list
my_arrays = [np.loadtxt('file.{}.project.dat'.format(i)) for i in range(1, 101)]

# As a dictionary
my_arrays = {i: np.loadtxt('file.{}.project.dat'.format(i)) for i in range(1, 101)}

答案 2 :(得分:1)

你可以使用字典。

d = {}
for i in range(1, 101):
    d['matrix{}'.format(i)] = np.loadtxt('file.{}.project.dat'.format(i))

这不会创建新的变量,但可能会解决您的任务,因为您可以按名称引用矩阵,d['matrix10']