我有一個相對較大的數據集(大約8GB),並使用h5py將其讀入jupyter筆記本中。在h5py中只存儲'列'數據而不加載整個數據文件
數據集的形狀最終變成類似(50000000,384)的形狀。我的理想數據集會進行轉置,以便我可以查看數據集中的每個「列」。我能夠實現獲取每列的唯一方法是對每列進行索引(這非常緩慢且CPU密集型,因爲它在50000000行中逐行進行)或將h5數據轉換爲np.array並轉置 - 這也非常緩慢和無效。
例如,我有一個H5文件:
chunk_file = h5py.File(chunk_fil_1, "r")
chunk_file["ex_dat"]
輸出:
HDF5 dataset "ex_dat": shape (50000000, 384)
如果我這樣做:
len(chunk_file["ex_dat"][0])
輸出:
384
這就是我希望我的輸出成爲'0'列50000000次出現的地方。
有沒有一種有效的方式來索引h5文件的'列'像數據而不讀取每一行?或者閱讀這個大型數據集的其他選擇?我的最終目標是將各個「列」存儲到熊貓數據框中。
是什麼'ARR = chunk_file [ 「ex_dat」] [:,0]'怎麼辦?我期望它讀取0列。它會比讀chunk_file [「ex_dat」] [0,:]'慢,但應該仍然合理。 – hpaulj
你想要一個帶有384列和50行的Dataframe嗎?你會剛剛讀完整件事情。 – hpaulj