NumPy - 平均值



什麼是平均值?

在數學中,平均值是一組數字的平均值。最常見的是算術平均值,它是數字的總和除以數字的個數。

其他型別包括幾何平均值(數字乘積的 n 次方根)和調和平均值(值的數量除以倒數的總和)。

這些不同的平均值根據資料的性質和分析的具體需求來使用。

NumPy mean() 函式

NumPy 中的 mean() 函式計算陣列中元素的算術平均值(平均值)。預設情況下,它計算所有元素的平均值,但您可以指定一個軸來沿行或列計算平均值。

它還可以處理不同的資料型別並允許您定義輸出型別。例如,np.mean([1, 2, 3, 4]) 返回 2.5。

以下是 NumPy 中 mean() 函式的基本語法:

numpy.mean(a, axis=None, dtype=None, out=None, keepdims=False)

其中,

  • a: 包含要計算平均值的元素的輸入陣列。
  • axis: 計算平均值的軸。如果為None,則計算陣列中所有元素的平均值。對於多維陣列,您可以指定一個軸(0 表示行,1 表示列,依此類推)。
  • dtype: 用於計算平均值的資料型別。如果未指定,則預設為輸入陣列的資料型別。
  • out: 結果將儲存到的位置。如果提供,它必須與預期輸出具有相同的形狀和型別。
  • keepdims: 如果為True,則將縮減的軸保留在結果中作為大小為一的維度。這對於廣播很有用。

計算一維陣列的平均值

如果您有一個一維陣列,您可以使用numpy.mean()函式來計算其元素的平均值。這是一個例子:

import numpy as np

# Define a 1D array
arr = np.array([1, 2, 3, 4, 5])

# Calculate the mean of all elements
mean_value = np.mean(arr)

print("Mean of the array:", mean_value)

以下是獲得的輸出:

Mean of the array: 3.0

沿二維陣列的特定軸計算平均值

在二維陣列中,您可以沿特定軸計算平均值。例如,計算沿行或列的平均值:

import numpy as np

# Define a 2D array
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Mean along rows (axis=1)
mean_rows = np.mean(arr_2d, axis=1)

# Mean along columns (axis=0)
mean_columns = np.mean(arr_2d, axis=0)

print("Mean along rows:", mean_rows)
print("Mean along columns:", mean_columns)

以下是獲得的輸出:

Mean along rows: [2. 5. 8.]
Mean along columns: [4. 5. 6.]

使用指定的資料型別計算平均值

您還可以指定要計算平均值的資料型別。當處理大數字或需要特定精度(例如 float64)的結果時,這尤其有用。這是一個例子:

import numpy as np

# Define an array of integers
arr_int = np.array([10, 20, 30])

# Calculate the mean with a specified data type (float64)
mean_float = np.mean(arr_int, dtype=np.float64)

print("Mean with dtype float64:", mean_float)

以下是獲得的輸出:

Mean with dtype float64: 20.0

使用 Keepdims 引數計算平均值

keepdims引數有助於在平均值操作後保留原始陣列的維度。如果設定為True,則結果將與輸入陣列具有相同的維度數,但縮減的軸的大小將為一。

import numpy as np

# Define a 2D array 
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Mean along columns while keeping dimensions
mean_keepdims = np.mean(arr_2d, axis=0, keepdims=True)

print("Mean with keepdims=True:", mean_keepdims)

以下是獲得的輸出:

Mean with keepdims=True: [[4. 5. 6.]]

NumPy 平均值的應用

numpy.mean()函式在科學計算、資料分析和機器學習中有著廣泛的應用。一些常見的用例是:

  • 計算資料集中的平均值:平均值提供資料集的中心值,這在統計和資料分析中至關重要,以瞭解資料分佈。
  • 特徵縮放:在機器學習中,計算特徵的平均值有助於歸一化和標準化,確保每個特徵對模型的貢獻相同。
  • 財務分析:計算財務資料的平均值,例如股票價格或銷售額,有助於識別趨勢並做出明智的決策。
  • 科學測量:平均值用於科學研究以總結實驗資料,提供中心趨勢的度量。

最佳化平均值計算

NumPy 針對快速陣列操作進行了最佳化,numpy.mean()函式效率很高。但是,有一些方法可以進一步最佳化您的平均值計算:

  • 使用out引數:如果您想將平均值的結果儲存在一個預先存在的陣列中,您可以使用out引數,這避免了建立新陣列並有助於節省記憶體。
  • 明智地使用axis僅在必要時指定軸。預設情況下,計算整個陣列的平均值是最快的操作,但根據資料,沿特定軸計算平均值可能會更慢。
廣告