直方图列表到一个数组中

2024-06-08 12:24:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个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))

任何帮助都将不胜感激。你知道吗


Tags: inforbinnp绘制数组直方图temp
0条回答
网友
1楼 · 发布于 2024-06-08 12:24:11

以下内容将当前直方图附加到前面的直方图:

# 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

编辑(回复评论):

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

1.预先分配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))

相关问题 更多 >