簡體   English   中英

numpy dtype ValueError:固定類型元組中的無效形狀 - 我該如何解決?

[英]numpy dtype ValueError: invalid shape in fixed-type tuple - how can I get around it?

我使用自定義數據類型,例如datatype = np.dtype('({:n},{:n})f4'.format(10000,100000))使用從二進制文件讀取數據

np.fromfile(filename, dtype=datatype)

但是,使用 np.dtype 定義數據類型會為大型數據集帶來錯誤,如上面的示例數據類型所示:

ValueError: invalid shape in fixed-type tuple: dtype size in bytes must fit into a C int

初始化該大小的數組沒有問題: a=np.zeros((10000,100000)) 所以我的問題是:這個限制從何而來,我該如何繞過它? 我當然可以使用循環並一次讀取塊,但也許有更優雅的方式?

當您指定'(M, N)f4'的 dtype 時'(M, N)f4'您實際上是在指定輸出數組的最后兩個維度,例如

np.zeros(5, np.dtype('(6, 7)f4')).shape
# (5, 6, 7)

您可以通過簡單地將數據作為一維數組讀取,然后將其整形為您想要的形狀來獲得相同的結果:

x = np.fromfile(filename, np.float32).reshape(-1, 10000, 100000)

暫無
暫無

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

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