关于我在这里的另一个问题,如果我使用我的数据集的一小部分,则此代码有效,由于规则,在这部分之后dtype='int32'
使用 a在我的主进程上float64
产生一个TypeErrorsafe
所以我会坚持使用,int32
但尽管如此,我我很好奇,想知道我遇到的错误。
fp = np.memmap("E:/TDM-memmap.txt", dtype='int32', mode='w+', shape=(len(documents), len(vocabulary)))
matrix = np.genfromtxt("Results/TDM-short.csv", dtype='int32', delimiter=',', skip_header=1)
fp[:] = matrix[:]
如果我使用完整数据( where shape=(329568, 27519)
),使用这些dtypes:
使用int32或int时出现OverflowError
和
使用float64时出现WindowsError
为什么以及如何解决这个问题?
编辑:添加回溯
int32的回溯
Traceback (most recent call last):
File "C:/Users/zeferinix/PycharmProjects/Projects/NLP Scripts/NEW/LDA_Experimental1.py", line 123, in <module>
fp = np.memmap("E:/TDM-memmap.txt", dtype='int32', mode='w+', shape=(len(documents), len(vocabulary)))
File "C:\Python27\lib\site-packages\numpy\core\memmap.py", line 260, in __new__
mm = mmap.mmap(fid.fileno(), bytes, access=acc, offset=start)
WindowsError: [Error 8] Not enough storage is available to process this command
float64的回溯
Traceback (most recent call last):
File "C:/Users/zeferinix/PycharmProjects/Projects/NLP Scripts/NEW/LDA_Experimental1.py", line 123, in <module>
fp = np.memmap("E:/TDM-memmap.txt", dtype='float64', mode='w+', shape=(len(documents), len(vocabulary)))
File "C:\Python27\lib\site-packages\numpy\core\memmap.py", line 260, in __new__
mm = mmap.mmap(fid.fileno(), bytes, access=acc, offset=start)
OverflowError: cannot fit 'long' into an index-sized integer
编辑:添加了其他信息
其他可能有帮助的信息:我有一个 1TB(931 GB 可用)硬盘,有 2 个分区,驱动器 D(22.8GB没有 150GB),我的工作文件包括这个脚本和 memmap 将被写入的位置和驱动器 E(406GB空闲781GB)我的洪流内容去哪里了。起初,我尝试将 mmap 文件写入Drive D,它为int32生成了一个1,903,283kb 文件,为float64生成了3,806,566kb文件。我想可能是因为空间不足,这就是我收到这些错误的原因,所以我尝试了Drive E,它应该绰绰有余,但它生成了相同的文件大小并给出了相同的错误。