簡體   English   中英

從2D矩陣生成器創建3D矩陣

[英]Create a 3D matrix from a generator of 2D matrices

我正在使用pandas讀取許多.csv文件。 每個文件將產生一個3x5數據幀。

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

我想合並來自各個文件的所有數據,以創建一個3維數組(如果我有10個文件,那么我想得到一個形狀為10x3x5的數組)

我可以創建一個空的python列表,並使用for循環附加在dtx找到的所有數組,但是我想要一個更多的pythonic解決方案。 我努力了

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

沒有理想的效果。 如何將從.csv文件讀取的所有數據連接到一個大型3D陣列中?

您可以向數組添加新維度並將其串聯:

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]]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM