我有两个非常相似的程序,它们的功能略有不同。在这两个程序中,产生了一个1568 x 1568的numpy矩阵。在我的一个程序中,这个矩阵创建工作得很好,但是在另一个程序中,我收到了一个MemoryError。错误信息如下:
a = empty(shape, dtype, order)
MemoryError
此外,当我将创建矩阵的代码部分从运行的程序复制到其自己的python文件中时,这也会产生MemoryError。
以下代码重现错误:
import matplotlib.pyplot as plt
import numpy as np
Z = np.zeros((1568, 1568))
fig = plt.figure(figsize=(6,6))
X = np.arange(0, 1568, 0.1)
Y = np.arange(0, 1568, 0.1)
X, Y = np.meshgrid(X, Y)
plt.contourf(X, Y, Z)
plt.show()
我不认为这是因为我使用的是32位python而不是64位(就其他人发布类似问题的问题而言),纯粹是因为事实上,这在我的其他程序中有效,矩阵应该只使用9.83 MB的RAM。
非常感谢任何帮助。
答案 0 :(得分:1)
感谢评论中的帮助,我意识到我说的程序中的代码正在运行,实际上与其他程序完全相同,并且有一个大小为156.8 x 156.8而不是1568的矩阵x 1568.在完整的代码中,我在矩阵设置中有变量而不是数字,所以这并不是很明显。我更改了程序,错误与此匹配,问题解决了。