运行以下代码将导致内存使用量迅速攀升。
import numpy as np
import pylab as p
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100000)
for i in range(100):
n, bins, patches = p.hist(x, 5000)
但是,当将对 pylab 的调用替换为对 numpy 直方图方法的直接调用时,内存使用量是恒定的(它的运行速度也明显加快)。
import numpy as np
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100000)
for i in range(100):
n, bins = np.histogram(x, 5000)
我的印象是 pylab 使用的是 numpy 直方图函数。某处一定有错误......
最佳答案
Matplotlib 生成图表。 NumPy 没有。将 p.show()
添加到您的第一个代码中以查看工作的进展情况。
import numpy as np
import pylab as p
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(100000)
n, bins, patches = p.hist(x, 5000)
p.show()
您可能想先尝试使用较小的 np.random.randn(100000)
数字以快速查看结果。
编辑
创建相同的情节 100 次真的没有意义。
关于python - matplotlib 直方图中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849996/