在使用本网站的丰富经验6年后,我的第一个StackOverflow消息。感谢大家为我和他人提供的所有帮助。
然而,这个问题完全让我困惑,我想请求社区的帮助。
我有一个175,759,360字节的大型原始字节'F'有序文件,我需要读入内存以使用python / numpy进行分析。目标是获得np.uint16 dtypes的(613,640,224)numpy数组。
我已经在类似的情况下多次成功但在上一个项目中我遇到了一个问题,我无法解决。
之前我以两种方式取得了成功(np.memmap)
np.memmap(rawFileName, dtype=np.uint16, mode='r', offset=0, shape=(613, 640, 224), order='F')
或使用普通的np.fromfile
with open('filename.raw', "rb") as rawFile:
rawFile = np.fromfile(rawFile, dtype=np.uint16)
rawFile = rawFile.reshape((613, 640, 224), order="F")
使用np.memmap的解决方案现在返回WinError8错误
OSError: [WinError 8] Not enough memory resources are available to process this command
和fromfile的解决方案返回引用计数错误
*** Reference count error detected:
an attempt was made to deallocate 4 (H) ***
我想请求我在解决此事时可以获得任何帮助。内存量不应该是一个问题,因为我已经尝试了8GB和32GB内存机器上的代码。我正在使用Win 10与Python版本3.6.4和numpy版本1.14.2
提前谢谢。