Python – 连续子列表的平均值


简介

Python 是一种灵活的编程语言,以其简单性和清晰度而闻名。在处理列表或数组时,计算连续子列表的平均值(均值)通常很有用。此操作可以使用不同的方法完成,每种方法都有其自己的算法和步骤。在本文中,我们将探讨在 Python 中计算连续子列表平均值的三种常见方法。我们将研究每种方法背后的算法,提供分步说明,并包含代码片段及其相应的输出。

Python - 连续子列表的平均值

计算连续子列表的平均值是数据分析和处理中的一项常见任务。在 Python 中,有多种方法可以实现这一点,您可以根据特定的需求和偏好选择最合适的方法。一种直接的方法涉及使用循环。使用循环迭代输入列表,并在每次迭代中提取指定大小的子列表。然后通过将子列表的元素求和并除以子列表的大小来计算子列表的平均值。此过程对所有连续子列表重复,并将生成的平均值存储在单独的列表中。

方法

方法 1:使用列表推导式

方法 2:使用 NumPy 库

方法 1:Python - 使用列表推导式计算连续子列表的平均值

第二种方法利用列表推导式的功能以更简洁的方式实现相同的结果。

在这种方法中,列表推导式概括了计算每个连续子列表平均值的逻辑。推导式的范围被调整为迭代与子列表起始位置相对应的元素。使用切片获取子列表,并在推导式本身内计算平均值。所涉及的步骤如下:

算法

步骤 1:像以前的方法一样定义输入列表和子列表的大小。

步骤 2:使用列表推导式创建一个新列表,其中包含连续子列表的平均值。

步骤 3:根据需要打印或使用生成的列表。

示例

#intilailize the list
input_list = [1, 2, 3, 4, 5, 6, 7, 8, 9 ]
sublist_size = 3

# Create a new list that contains the means of consecutive sublists using list comprehension
result_list = [sum(input_list[i:i+sublist_size]) / sublist_size for i in range(0, len(input_list),3)]
#display the computed result
print(result_list)

输出

 [2.0, 5.0, 8.0]

方法 2:Python - 使用 NumPy 库计算连续子列表的平均值

第二种方法利用 NumPy 库的功能,该库提供了一套全面的数值运算函数。在继续之前,此方法需要先安装 NumPy 库。

在这种方法中,我们使用嵌套列表推导式创建一个连续子列表的数组。然后沿着所需的轴(axis=1)应用 numpy.mean() 函数来计算每个子列表的平均值。生成的数组包含连续子列表的平均值。所涉及的步骤如下:

算法

步骤 1:将 NumPy 模块包含到您的 Python 脚本中。

步骤 2:像之前一样定义输入列表和子列表的大小。

步骤 3:使用 numpy.mean() 函数计算连续子列表的平均值。

步骤 4:根据需要打印或使用生成的数组。

示例

#import the required module
import numpy as np
#intialize the list
input_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sublist_size = 3

# Create an array of consecutive sublists, calculate the mean along axis 1
result_array = [np.mean(np.array(input_list[i:i+3])) for i in range(0, len(input_list), 3)]
   
#Finally print the resulting value
print(result_array)

输出

[2.0, 5.0, 8.0] 

结论

我们研究了两种在 Python 中计算连续子列表平均值的不同方法。我们讨论了每种方法背后的算法,并提供了代码的分步说明。通过使用循环、列表推导式或 NumPy 库,您可以有效地计算平均值并对您的数据进行进一步分析。Python 的灵活性及其丰富的库生态系统使您可以选择最适合您的需求和编码风格的方法。无论您偏向于更明确的基于循环的解决方案、简洁的列表推导式还是 NumPy 的强大功能,Python 都提供了有效计算连续子列表平均值的工具。

更新于: 2023年8月7日

64 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告