直方图列表成一个数组

时间:2015-11-13 16:03:45

标签: python arrays

我从一个10乘2000的数组开始并运行循环以获得每行100个二进制的直方图。循环为我提供了2000个单独的1乘100阵列。 我需要能够将所有这2000个直方图放入一个大型数组中,以便我可以绘制它。我似乎无法弄清楚如何做到这一点。如果我尝试在循环之外进行,它只会给我最后一个直方图。我需要所有2000个。 这是我的循环:

for i in np.arange(1999):
    temp_histogram, bin_edges= np.histogram([critters_intervals[i, :]], bins=np.arange(101))

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

以下将当前直方图附加到之前的直方图:

# prepare result array
histograms = np.array([])
for i in np.arange(1999):
    temp_histogram, bin_edges= np.histogram([critters_intervals[i, :]], bins=np.arange(101))
    # append latest histogram to the previous ones
    np.concatenate((histograms, temp_histogram))

如果您想要汇总/累积直方图,您可以执行以下操作:

accumulated_histogram = np.zeros(100)
for i in np.arange(1999):
    temp_histogram, bin_edges= np.histogram([critters_intervals[i, :]], bins=np.arange(101))
    # add latest histogram to the previous counts
    accumulated_histogram += temp_histogram

编辑(对评论的回应):

如果要将所有直方图存储在2D数组中,可以使用以下选项:

1.Preallocate 2D数组,然后填写它:

all_histograms = np.zeros((1999, 100))
for i in np.arange(1999):
    all_histograms[:,i], bin_edges= np.histogram([critters_intervals[i, :]], bins=np.arange(101))

2.生成后的直方图

# initialize array with first histogram
all_histograms, all_bin_edges = np.histogram([critters_intervals[0, :]], bins=np.arange(101))
for i in np.arange(1999):
    temp_histogram, bin_edges= np.histogram([critters_intervals[i, :]], bins=np.arange(101))
    all_histograms = np.vstack((all_histograms, temp_histogram))