从二维矩阵生成器创建三维矩阵

2024-05-05 16:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pandas读取许多.csv文件。每个文件将产生一个3x5数据帧

dtx = (pd.read_csv(f).values for f in get_filelist(datadirectory))

我想合并来自不同文件的所有数据,以便创建一个三维数组(如果我有10个文件,那么我希望最终得到一个形状数组:10x3x5

我可以创建一个空的python列表并使用for循环附加在dtx中找到的所有数组,但是我想要一个更python的解决方案。我试过了

np.concatenate([tf for tf in dtx])

没有达到预期的效果。如何将从.csv文件读取的所有数据连接到一个大的3D数组中


Tags: 文件csv数据inpandasforreadget
1条回答
网友
1楼 · 发布于 2024-05-05 16:27:28

可以向数组中添加新维度并将其串联:

dtx = (pd.read_csv(f).values for f in get_filelist(datadirectory))
np.concatenate([tf[np.newaxis] for tf in dtx], axis=0)

示例:

np.concatenate([tf[np.newaxis] for tf in (np.arange(4).reshape((2,2)) for i in range(3))], axis=0)
>> array([[[0, 1],
        [2, 3]],

       [[0, 1],
        [2, 3]],

       [[0, 1],
        [2, 3]]])

相关问题 更多 >