平均多个列表的每个第 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
的转换是您想要的(而不是 round
或 floor
等)
我有 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
的转换是您想要的(而不是 round
或 floor
等)