NumPy - 求和



什麼是求和?

在數學中,求和是將兩個或多個數字加在一起的結果。例如,2 和 3 的和是 5。

它通常用加號 (+) 表示。求和也可以包括對數字序列進行求和,通常使用希臘字母 sigma (Σ) 來表示該運算。

NumPy 的 sum() 函式

NumPy 中的 sum() 函式計算沿指定軸的陣列元素的和,提供靈活地在行、列或整個陣列上進行求和。

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

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

其中:

  • a: 包含要相加元素的輸入陣列。
  • axis: 要沿其求和的軸。如果為 None,則對陣列的所有元素求和。對於多維陣列,您可以指定一個軸(0 代表行,1 代表列,等等)。
  • dtype: 用於求和的資料型別。如果未指定,則預設為陣列的資料型別。
  • out: 將結果儲存到的位置。如果提供,則其形狀和型別必須與輸入陣列相同。
  • keepdims: 如果為 True,則將約簡的軸保留在結果中,作為大小為一的維度。這對於廣播很有用。

求一維陣列所有元素的和

如果您有一個一維陣列,可以使用 numpy.sum() 函式計算其所有元素的和。以下是一個例子:

import numpy as np

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

# Calculate the sum of all elements
total_sum = np.sum(arr)

print("Total sum of the array:", total_sum)

以下是獲得的輸出:

Total sum of the array: 15

在二維陣列中沿特定軸求和

在二維陣列中,您可以沿特定軸計算和。例如,沿行或列求和:

import numpy as np

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

# Sum along rows (axis=1)
sum_rows = np.sum(arr_2d, axis=1)

# Sum along columns (axis=0)
sum_columns = np.sum(arr_2d, axis=0)

print("Sum along rows:", sum_rows)
print("Sum along columns:", sum_columns)

以下是獲得的輸出:

Sum along rows: [ 6 15 24]
Sum along columns: [12 15 18]

使用指定的資料型別求和

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

import numpy as np

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

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

print("Sum with dtype float64:", sum_float)

以下是獲得的輸出:

Sum with dtype float64: 60.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]])

# Sum along columns while keeping dimensions
sum_keepdims = np.sum(arr_2d, axis=0, keepdims=True)

print("Sum with keepdims=True:", sum_keepdims)

以下是獲得的輸出:

Sum with keepdims=True: [[12 15 18]]

NumPy 求和的應用

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

  • 對矩陣中的行或列求和:在資料科學中,您經常需要沿特定軸計算和,以彙總表或矩陣中的資料。
  • 計算陣列中的總值:對陣列中的元素求和可以幫助進行財務分析、統計和科學計算,例如計算測量的總和或數量。
  • 資料聚合:在分析資料時,對值求和可以是聚合操作的一部分,例如查詢總銷售額或計算某些資料點的累積和。
  • 特徵縮放:在機器學習中,特徵的總和通常用於資料標準化或縮放,以調整特徵的範圍。

最佳化求和計算

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

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