我有带有 x,y 坐标的 8823 数据点。我正在尝试按照 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 浮点数组。它们中的每一个都约为 0.6 GB。

但是无论如何,您的屏幕无法显示(并且您的眼睛无法真正处理)那么多信息,因此在执行此步骤之前,您可能应该想办法将数据平滑为更合理的值,例如 1024*1024。

关于python - 运行 Numpy Meshgrid 时出现内存错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2460627/

10-12 21:54