簡體   English   中英

為什么 numpy 在這里返回一維數組?

[英]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.voidlen(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.

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