Python - 元組列表中的列均值


在元組列表中,列均值指的是元組資料每列元素的平均值。元組列表是由多個元組組成的集合,每個元組代表一條記錄或觀察值,每個元組中的元素對應不同的列或變數。

處理數值資料並進行統計分析或做出資料驅動型決策時,列均值特別有用。例如,考慮以下元組列表。

data = [(1, 2, 3),
(4, 5, 6),
(7, 8, 9)]

在本例中,元組列表包含三個元組,每個元組代表一條包含三列的記錄。第一列包含值 (1, 4, 7),第二列包含值 (2, 5, 8),第三列包含值 (3, 6, 9)。

要計算列均值,首先必須分別計算每列的平均值。在本例中,列均值的計算方法如下。

  • 第1列均值: (1 + 4 + 7) / 3 = 4

  • 第2列均值: (2 + 5 + 8) / 3 = 5

  • 第3列均值: (3 + 6 + 9) / 3 = 6

因此,給定元組列表的列均值為 [4, 5, 6]。

要使用 Python 計算元組列表中的列均值,我們可以根據資料的結構採用不同的方法。讓我們詳細瞭解每種方法,並透過示例進行更好的理解。

使用列表推導式

在這種方法中,我們可以使用列表推導式來提取每一列並分別計算每一列的均值。

示例

在本例中,'zip(*data)' 用於轉置元組列表,建立一個迭代器,返回包含每列元素的元組。然後,列表推導式迭代每一列,使用`sum(column)`計算元素的總和,並使用`len(data)`將其除以列中元素的數量以獲得均值。

data = [(1, 2, 3),
   (4, 5, 6),
   (7, 8, 9)]
column_means = [sum(column) / len(data) for column in zip(*data)]
print("The column average of the given tuple list:",column_means)

輸出

The column average of the given tuple list: [4.0, 5.0, 6.0]

使用 mean() 函式

NumPy 是 Python 中用於數值計算的強大庫。它提供了高效的陣列運算和數學函式。

示例

在本例中,首先,我們需要使用以下程式碼將元組列表轉換為 NumPy 陣列。然後,我們必須使用 NumPy 庫的`mean()` 函式來計算每列的均值。這裡,`axis=0` 指定應沿列垂直方向計算均值。`mean()` 函式返回一個數組,其中包含每列的均值。

import numpy as np
data = [(1, 2, 3),
   (4, 5, 6),
   (7, 8, 9)]
data_array = np.array(data)
column_means = np.mean(data_array, axis=0)
print("The column average of the given tuple list:",column_means)

輸出

The column average of the given tuple list: [4. 5. 6.]

使用迴圈

假設我們有一個元組列表,其中每個元組代表一條記錄,元組中的元素代表不同列中的值。

要計算列均值,我們可以使用迴圈迭代元組並對每一列的值求和,然後除以記錄數以獲得均值。

示例

在本例中,我們初始化一個空列表column_mean來儲存每一列的均值。然後,我們計算記錄數num_records,並使用迴圈變數 i 迭代每個元組中元素的索引。

對於每一列,我們使用列表推導式來提取相應的值,並使用sum(record[i] for record in records)計算總和。最後,我們將總和除以記錄數以獲得該列的均值,並將其新增到column_mean列表中。

records = [
   (1, 2, 3),
   (4, 5, 6),
   (7, 8, 9)
]
column_mean = []
num_records = len(records)
for i in range(len(records[0])):
   column_sum = sum(record[i] for record in records)
   column_mean.append(column_sum / num_records)
print("The column average of the given tuple list:",column_mean)

輸出

The column average of the given tuple list: [4.0, 5.0, 6.0]

更新於:2024年1月2日

瀏覽量:142

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告