Python 初始化函数中的大numpy数组时出现内存错误

Python 初始化函数中的大numpy数组时出现内存错误,python,arrays,linux,python-2.7,numpy,Python,Arrays,Linux,Python 2.7,Numpy,我在初始化函数中的大型numpy数组时遇到内存错误问题 虽然我试图在main函数中初始化它,但它仍然可以工作,即使我在IPython(python终端)中使用它,它也可以工作 Stacks = np.zeros((448,448,40,120)) 还尝试了np.empty() 不管怎样,当你在家里做同样的事情时 def func(arr): Stacks = np.zeros((448,448,40,120)) func (arr) arr是一个大小为(44844800)的数组 只是

我在初始化函数中的大型numpy数组时遇到内存错误问题

虽然我试图在main函数中初始化它,但它仍然可以工作,即使我在IPython(python终端)中使用它,它也可以工作

Stacks = np.zeros((448,448,40,120))
还尝试了np.empty()

不管怎样,当你在家里做同样的事情时

def func(arr):
   Stacks = np.zeros((448,448,40,120))

func (arr)
arr
是一个大小为(44844800)的数组

只是想把这个3D阵列保存成4D阵列。但它在函数调用中显示内存错误


系统至少有4GB RAM。我不认为RAM是一个瓶颈,因为它可以在主终端和Python终端上工作。

您尝试创建的阵列几乎需要8 GB。假设数据类型匹配,则与已有的
arr
数组相同。您似乎不清楚要使用多少内存。如果您只想重塑
arr
,您可以使用
numpy来重塑视图。重塑
,而无需再分配8 GB。这是绝对正确的。但目前尚不清楚为什么它主要起作用。即使我初始化了两个大小相同(7.17gb*2)的不同数组,它也可以工作。在python终端中也可以使用。知道为什么吗?您尝试创建的阵列几乎需要8 GB。假设数据类型匹配,则与已有的
arr
数组相同。您似乎不清楚要使用多少内存。如果您只想重塑
arr
,您可以使用
numpy来重塑视图。重塑
,而无需再分配8 GB。这是绝对正确的。但目前尚不清楚为什么它主要起作用。即使我初始化了两个大小相同(7.17gb*2)的不同数组,它也可以工作。在python终端中也可以使用。知道为什么吗?