如何遍历3d数组并计算每个单元格的平均值

时间:2018-05-04 18:16:01

标签: python arrays for-loop dataframe mean

我想在python中为以下行创建一个循环(我使用pycharm):

mean_diff = np.mean(np.array([diff_list[0].values, diff_list[1].values, diff_list[2].values, diff_list[3].values,...,diff_list[100], axis=0)

用这个我得到不同阵列中每个单独单元格的平均值(光栅随时间变化)

我尝试了以下内容:

for x in range(100):
    mean_diff = np.mean(np.array([diff_list[x].values]), axis=0)

但是这里发生的事情是,它将开始计算最后一次迭代的平均值与新数组之间的平均值,依此类推,而不是首先添加所有内容,然后计算总数的平均值。一个想法是首先创建一个“sumarray”,其中包含所有diff_list值,但我也没有这样做。我的diff_list的原始类型是一个包含数据框的列表(对于每一行它有一个数组,所以它是一个3d数组/数据框(??)... - >参见图片:image shows the structure of the list )。

1 个答案:

答案 0 :(得分:0)

您需要在循环内填充数组,而不是进行计算。 Python列表推导是完美的:

您的第一个程序相当于:

mean_diff = np.mean(np.array([a.values for a in diff_list[:101]], axis=0))

或者如果您愿意:

x = []
for a in diff_list[:101]:
    x.append(a.values)
mean_diff = np.mean(np.array(x, axis=0))

如果您使用整个列表而不是前101个元素,则可以删除“[:101]”。