平均多个列表的每个第 n 个元素

averaging every nth element of multiple lists

我有 4 个相同长度的列表,我想对列表中的每个第 n 个元素进行平均,并根据这些平均值制作一个新列表。例如:

y1 = [1, 2, 2, 4, 5]
y2 = [3, 6, 9, 12, 0]
y3 = [2, 3, 4, 5, 6]
y4 = [2, 1, 5, 7, 9]

预期结果应该是:

y1234  = [2, 3, 5, 7, 5]

我该怎么做?

您可以使用numpy.mean

np.array([y1, y2, y3, y4]).mean(axis=0)

你可以用列表理解来做到这一点:

y1 = [1, 2, 2, 4, 5]
y2 = [3, 6, 9, 12, 0]
y3 = [2, 3, 4, 5, 6]
y4 = [2, 1, 5, 7, 9]

n_lists = 4

y1234 = [int(sum(x)/n_lists) for x in zip(y1, y2, y3, y4)]

请注意,在您的示例中,最后的平均值为 4。

zip returns 一个元组,然后您可以将其发送到 sum。确保使用 int 的转换是您想要的(而不是 roundfloor 等)