Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查是否有足够的内存分配我的变量_Python_Memory_Graph Theory - Fatal编程技术网

Python 检查是否有足够的内存分配我的变量

Python 检查是否有足够的内存分配我的变量,python,memory,graph-theory,Python,Memory,Graph Theory,假设我有一个非常大的图G,我想找到距离矩阵,它只是一个二维数组。在此之前,我想确保有足够的内存来分配我的二维数组。如果内存不足,则引发内存错误。我不想浪费数小时计算距离矩阵,最终得到一个内存错误。为此目的使用numpy是一个很好的实践。可以肯定的是,numpy数组使用的内存比标准列表少,可以控制用于权重的数据类型,实现了很多矩阵操作,如果您试图分配太大的数组,则会出现异常 >>> a = numpy.empty((100, 100)) >>> a = nump

假设我有一个非常大的图G,我想找到距离矩阵,它只是一个二维数组。在此之前,我想确保有足够的内存来分配我的二维数组。如果内存不足,则引发内存错误。我不想浪费数小时计算距离矩阵,最终得到一个内存错误。

为此目的使用numpy是一个很好的实践。可以肯定的是,numpy数组使用的内存比标准列表少,可以控制用于权重的数据类型,实现了很多矩阵操作,如果您试图分配太大的数组,则会出现异常

>>> a = numpy.empty((100, 100))
>>> a = numpy.empty((100000000, 1000000000))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError
>>a=numpy.empty((100100))
>>>a=numpy.empty((100000000,100000000))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
记忆者

谢谢。我想尝试一下,但我想知道是否有一种方法可以在python中实现这一点,而不需要任何其他依赖项。我们可以使用例如malloc这样的C语言分配器吗?不,我知道。标准工作是使用容器(列表、目录)。容器可以分配其空间(例如,[None]*1000,创建包含1000个元素的列表,所有元素都设置为None),但无法保证其元素将使用多少内存。我认为numpy数组是最接近C的,这是使用“标准”库可以得到的。