【发布时间】:2017-03-10 12:38:22
【问题描述】:
作为我正在处理的项目的一部分,我需要在循环中将数据添加到直方图中。该项目的部分要求是我不使用数组来存储数据。这是我正在尝试做的伪代码:
import matplotlib.pyplot as plt #could by numpy if that works better
plt.hist(define histogram with n bins)
for i in range (bignumber):
MCMC to find datapoint
add point to histogram
plt.plot()
我遇到问题的代码是如何预定义没有数据的直方图,然后在生成时将数据附加到它。
【问题讨论】:
-
MCMC:马尔可夫链蒙特卡洛
-
为什么不使用数组?您可以简单地创建一个带有零的数组(函数 numpy.zeros)并在循环中增加该数组的索引。索引号可以通过类似 numpy.searchsorted 的方式确定。
-
“不要使用数组存储数据”是一个很奇怪的要求。由于 Matplotlib 需要数组来绘制数据,所以几乎不可能没有。
-
我也有同样的问题。想象一下,您有数十 TB 的数据,您需要在一组直方图中收集一些足够的数据统计信息(存储在数千个文件中),以执行进一步的数据分析。没有办法,您可以一次将所有数据加载到 RAM 中,然后创建直方图。您一次只能打开一个文件,并继续添加到现有直方图。
标签: python matplotlib histogram