[英]why is numpy returning a 1-d array here?
我正在嘗試從二進制數據的大文件中讀取一個 numpy 數組。 每個二進制記錄包含 7330 個浮點數,后跟一個我想忽略的 long,然后是一個 int。 我創建一個 dtype 如下:
dt = [(str(n),'f4') for n in range(7330)]
dt += [('junk','i8'), ('label','i4')]
然后通過讀取文件
d = np.fromfile(file_name,dtype=np.dtype(dt))
它有效,但我得到一個一維數組或記錄,而不是我想要的二維數組。 更具體地說,我得到了一個數組,其中d.shape=(58134,)
d[0]
類型為numpy.void
和len(d[0])=7332
(7330 個浮點數,我將忽略的 long 和 int )。 我想要一個形狀數組(58134,7332)
。
我不能 d.reshape(-1,7332) 因為 d 是一維的,我最終通過丑陋和有點荒謬的方式轉換它
nparray = pd.DataFrame.from_records(d).to_numpy()
這似乎很荒謬。 我究竟做錯了什么? 謝謝!
事實證明 numpy.lib.recfunctions.structured_to_unstructured 正是這樣做的。 感謝 darcamo 為我指明了那個方向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.