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