如何在for循环中加载多个文本文件作为单独的numpy数组?

xwmevbvl  于 2023-04-21  发布在  其他
关注(0)|答案(2)|浏览(102)

我正在尝试使用np.loadtxt为每个'dat'文件(总共10个)生成一个numpy数组。但是,我不知道如何将每个文件存储在一个单独的数组中。有人可以帮助我如何修改以下代码以便这样做吗?

filenames = sorted(glob.glob('Mydata*.dat'))

for filename in filenames:
    print(filename)
    
    data = np.loadtxt(fname=filename, delimiter='\t')

谢谢!

lsmd5eda

lsmd5eda1#

类似于:

data = []
for filename in filenames:
    print(filename)
    data.append(np.loadtxt(fname=filename, delimiter='\t'))

现在你有了一个由10个numpy数组填充的数组

egmofgnx

egmofgnx2#

你应该使用字典:

filenames = sorted(glob.glob('Mydata*.dat'))

data = {}
for filename in filenames:
    print(filename)
    data[filename] = np.loadtxt(fname=filename, delimiter='\t')

然后使用以下命令访问阵列:

data[filename]

最好对文件名进行一点处理,只保留一个相关的标识符作为字典键。

import re

filenames = sorted(glob.glob('Mydata*.dat'))

data = {}
for filename in filenames:
    print(filename)
    key = re.search(r'Mydata(.*)\.dat', filename).group(1)
    data[key] = np.loadtxt(fname=filename, delimiter='\t')

然后只有文件名的变量部分将被用作键(例如,如果文件名是MydataABC123.dat,则键将是ABC123)。

data['ABC123']

相关问题