我有 8823 个具有 x,y 坐标的数据点。我正在尝试按照 how to get a scatter dataset to be represented as a heatmap 上的答案进行操作但是当我通过
X, Y = np.meshgrid(x, y)
关于我的数据数组的指令,我得到了 MemoryError
。我是 numpy 和 matplotlib 的新手,主要是尝试通过调整我能找到的示例来运行它。
以下是我如何从存储了它们的文件构建我的数组:
XY_File = open ('XY_Output.txt', 'r')
XY = XY_File.readlines()
XY_File.close()
Xf=[]
Yf=[]
for line in XY:
Xf.append(float(line.split('\t')[0]))
Yf.append(float(line.split('\t')[1]))
x=array(Xf)
y=array(Yf)
我的阵列有问题吗?当放入 this example 时,同样的代码起作用了但我不太确定。
为什么我会收到此 MemoryError,我该如何解决?
最佳答案
您对 meshgrid
的调用需要大量内存——它会产生两个 8823*8823 float 组。它们每个大约 0.6 GB。
但是无论如何,您的屏幕无法显示(您的眼睛也无法真正处理)那么多信息,因此在执行此步骤之前,您可能应该想办法将数据平滑到更合理的值,例如 1024*1024 .
关于python - 运行 Numpy Meshgrid 时出现 MemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2460627/