我有一个相当大的numpy
数组,大约一千兆字节左右。 计算进入数组的值需要很长时间,因此一旦构建了数组,我就会使用np.savetxt
对其进行序列化。 但是,从浮点数数组(每个浮点数为 64 位(转换为包含表示这些浮点数的字符串(分别为 8bits*len(float_2_string_conversion(> 64 位(的文件会创建一个比原始数组大得多的文件。 我认为也许,np.loadtxt
加载所有字符串内容,然后一次性进行转换以浮动。 因此,np.loadtxt
的内存占用量明显大于原始阵列。
无论如何,我无法将数组加载回内存中,因为np.loadtxt
不是很礼貌。 有没有一种方便的方法可以将numpy
创建的 csv 加载回不那么需要内存的内存中?
注意:这个问题似乎提出了这个确切的问题,但似乎没有任何解决方案,只是承认这是一个问题。
如果使用 np.load((,则可以设置 memmap 参数。我没有使用过它不能保证它的性能。
https://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html?highlight=memmap