内存错误Python Numpy数组

时间:2018-02-15 21:38:19

标签: python arrays numpy

尝试在多个点评估函数并存储在数组中时,我遇到了内存错误。我已经阅读了一些关于类似问题的其他帖子,我不认为我超出了我系统的内存限制:

              total        used        free      shared  buff/cache   available
Mem:      131898384     8964068   122074628       15128      859688   121905868
Swap:      14648316     1001760    13646556

以及

MemTotal:       131898384 kB
MemFree:        75056308 kB
MemAvailable:   74889296 kB

错误消息是:

PDF= np.zeros([T,Y])
MemoryError

我的代码是:

Y=40000
T = 200000
tmin = 0
timestep = 10
tmax = timestep*T
TD_Psi = np.zeros([T,Y],'complex')
t = np.linspace(tmin, tmax, T)

for j in range(T):
    for i in range(M):
        TD_Psi[j] = TD_Psi[j] + c[i]*MO_basis[i]*np.exp(-evals[i]*t[j]*1j)

PDF= np.zeros([T,Y])
for time in range(T):
    PDF[time] = np.real(np.conjugate(TD_Psi[time])*TD_Psi[time])

我不确定问题是在我的代码或系统中,以及我可以采取哪些措施来解决此问题。在给我错误之前,它会一直运行到T = 150000

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

np.zeros([T,Y],'complex')是128 GB。 np.zeros([T,Y])是另一个64 GB。您没有192 GB的RAM。你的记忆力不足。