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 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告