Python 在numpy中创建内存错误的大数组 内存错误的问题有解决办法吗?

Python 在numpy中创建内存错误的大数组 内存错误的问题有解决办法吗?,python,numpy,memory,Python,Numpy,Memory,内存是8GB,我想完成广播操作,但它确实有巨大的成本 鉴于条件: interdata = data[:, None] - data[None] 数据的形状是[1000,32,32],我想要interdata的形状是[1000,1000,32,32],这对我的内存来说似乎太大了 有没有办法解决这个难题 有没有办法解决这个难题 当然可以,但要付出代价 numpy可以使用.memmap()-ed资源,其中磁盘容量是下一个容量“上限” 然而,这将使您进入SSD设备托管的.memmap()-存储的[us

内存是8GB,我想完成广播操作,但它确实有巨大的成本

鉴于条件:

interdata = data[:, None] - data[None]
数据的形状是
[1000,32,32]
,我想要
interdata
的形状是
[1000,1000,32,32]
,这对我的内存来说似乎太大了

有没有办法解决这个难题

有没有办法解决这个难题

当然可以,但要付出代价
numpy
可以使用
.memmap()
-ed资源,其中磁盘容量是下一个容量“上限”

然而,这将使您进入SSD设备托管的
.memmap()
-存储的
[us]
单位,或旋转驱动器的
~1E+1[ms]
单位,因此请记住这一点


如果这是不可接受的,那么现在有相当昂贵的COTS平台提供多TB容量或RAM,其中
[ns]
-规则。

您为什么需要它?这真的是最终目标吗?如果我得到interdata,那么我将使用它作为下几个操作的操作数。因此,我希望预先计算,以减少总时间成本。很可能您寻求的解决方案不是这个问题的直接解决方案。也许,如果你更详细地解释你想要实现什么,以及你的方法是什么,那么我们可能会找到解决方案,这些解决方案将一起绕过你最初的问题。例如,可能有一种解决方案涉及重复使用上一个操作的结果,这样您就不必一次性预先计算
interdata
。很难描述整个问题。我正试图重复一篇论文,这需要几个步骤。每个部分都是独立的。只有有了先前的结果,我们才能继续下一步。我会重新考虑整个过程。谢谢你抽出时间!我不太清楚“.memmap”的操作。你介意说更多的细节吗?如前所述,[空间]域问题总是[时间]域成本。对于{poor | better | best}解决方案来说,许多额外的细节确实很重要--就地操作、矢量化/广播方向排序/文件IO序列布局等。可以从以下位置开始了解细节:[1]>>>[2]>>