擅长:python、mysql、java
<p>你不需要。<code>loadmat</code>不使文件保持打开状态。如果给定一个文件名,它会将文件内容加载到内存中,然后立即关闭它。您可以使用@nils werner建议的file对象,但这样做不会带来任何好处。从<a href="https://github.com/scipy/scipy/blob/05dc7b8b0662c9c973203b36044458ca35084833/scipy/io/matlab/mio.py#L142" rel="nofollow noreferrer">source code</a>可以看出这一点。在</p>
<p>很可能是因为一次有太多的数据而耗尽内存。我要尝试的第一件事是将所有数据加载到一个大numpy数组中。您知道每个文件的大小,以及文件的数量,因此可以预先分配一个大小合适的数组,并将数据写入该数组的片段。如果数组大小有问题,这也会立即告诉您。在</p>
<p>如果内存仍然不足,则需要另一种解决方案。一个简单的解决方案是使用<code>dask</code>。这允许您创建看起来和行为类似于numpy数组的东西,但它存在于文件中而不是内存中。这允许您处理太大而无法放入内存的数据集。<code>bcolz</code>和{<cd4>}提供了相似的功能,尽管不是那么无缝。在</p>
<p>如果没有这些选项,<code>h5py</code>和{<cd6>}允许您以增量方式将数据集存储到文件中,而不必一次将整个内容保存在内存中。在</p>
<p>总的来说,我认为这个问题是<a href="https://meta.stackexchange.com/a/66378/288415">XY Problem</a>的一个典型例子。一般来说,最好是陈述你的症状,并就这些症状寻求帮助,而不是猜测解决方案是什么,然后请人帮助你实施解决方案。在</p>