我正在使用pandas
来读取许多.csv
文件。每个文件都会产生一个 3x5 数据帧。
dtx = (pd.read_csv(f).values for f in get_filelist(datadirectory))
我想合并来自各个文件的所有数据,以创建一个3维数组(如果我有10个文件,那么我想得到一个形状数组: 10x3x5 )< / p>
我可以创建一个空的python列表,并使用for循环附加在dtx
中找到的所有数组,但是我想要一个更pythonic的解决方案。我尝试过
np.concatenate([tf for tf in dtx])
没有达到预期的效果。如何将从.csv
文件中读取的所有数据连接到一个大型3D阵列中?
答案 0 :(得分:2)
您可以向数组添加新维度并将其连接:
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]]])