我从一个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))
任何帮助都将不胜感激。
答案 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))