一、np.cumsum的定義與語法
np.cumsum()
是numpy庫中的一個函數,表示對數組元素進行累加並存儲結果。
語法如下:
numpy.cumsum(a, axis=None, dtype=None, out=None)
其中:
a
:輸入的數組axis
:指定沿著哪個軸進行累加。默認為None,即所有元素都相加dtype
:輸出數組的類型out
:輸出數組。如果未提供,則返回新的數組
二、np.cumsum的使用示例
下面我們來看一些具體的使用示例。
1、一維數組
對一維數組進行累加:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
cum_sum = np.cumsum(arr1)
print(cum_sum)
結果為:
[ 1 3 6 10 15]
以上代碼的執行過程為:
- 定義一維數組
arr1
,包含5個元素 - 使用
np.cumsum()
函數對該數組進行累加 - 將累加結果賦值給變數
cum_sum
- 輸出
cum_sum
,得到數組[1, 3, 6, 10, 15]
2、二維數組
對二維數組進行累加,默認對所有元素進行累加:
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
cum_sum = np.cumsum(arr2)
print(cum_sum)
結果為:
[ 1 3 6 10 15 21 28 36 45]
以上代碼的執行過程為:
- 定義二維數組
arr2
,包含3行3列,共9個元素 - 使用
np.cumsum()
函數對該數組進行累加 - 將累加結果賦值給變數
cum_sum
- 輸出
cum_sum
,得到數組[1, 3, 6, 10, 15, 21, 28, 36, 45]
對二維數組進行累加,沿著軸0進行:
cum_sum_axis0 = np.cumsum(arr2, axis=0)
print(cum_sum_axis0)
結果為:
[[ 1 2 3]
[ 5 7 9]
[12 15 18]]
以上代碼的執行過程為:
- 使用
np.cumsum()
函數對數組arr2
進行累加,沿著軸0進行計算 - 將累加結果賦值給變數
cum_sum_axis0
- 輸出
cum_sum_axis0
,得到數組[[1, 2, 3], [5, 7, 9], [12, 15, 18]]
對二維數組進行累加,沿著軸1進行:
cum_sum_axis1 = np.cumsum(arr2, axis=1)
print(cum_sum_axis1)
結果為:
[[ 1 3 6]
[ 4 9 15]
[ 7 15 24]]
以上代碼的執行過程為:
- 使用
np.cumsum()
函數對數組arr2
進行累加,沿著軸1進行計算 - 將累加結果賦值給變數
cum_sum_axis1
- 輸出
cum_sum_axis1
,得到數組[[1, 3, 6], [4, 9, 15], [7, 15, 24]]
3、3維數組
對一個3維數組進行累加:
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
cum_sum = np.cumsum(arr3)
print(cum_sum)
結果為:
[ 1 3 6 10 15 21 28 36]
以上代碼的執行過程為:
- 定義一個3維數組,包含2個2行2列的矩陣,共8個元素
- 使用
np.cumsum()
函數對該數組進行累加 - 將累加結果賦值給變數
cum_sum
- 輸出
cum_sum
,得到數組[1, 3, 6, 10, 15, 21, 28, 36]
三、np.cumsum的應用場景
np.cumsum()
函數可以用於一些需要進行數據累加分析的場景。
1、歡迎姬余潤的新同學報到!
姬余潤最近加入了一家新公司,他想了解公司股票的歷史漲跌情況。假設他在2019年1月1日以每股100元的價格買入了1000股公司股票,他想知道到目前為止自己的股票總價值是多少。
import numpy as np
# 假設股票價格分別為113元、130元、125元、140元、120元
price = np.array([113, 130, 125, 140, 120])
num_shares = 1000 # 假設買入1000股
cum_sum = np.cumsum(price)
value = num_shares * cum_sum[-1] # 最後一天的股票價值
print("自購買以來總價值為:", value, "元")
結果為:
自購買以來總價值為: 132500.0 元
以上代碼的執行過程為:
- 定義數組
price
,包含5個元素,即公司股票的5個交易日收盤價 - 使用
np.cumsum()
函數對price
數組進行累加 - 計算最後一個元素的值
cum_sum[-1]
,表示股票捏的總價值 - 計算股票總價值
num_shares * cum_sum[-1]
- 輸出結果,得到自購買以來的公司股票總價值為132500.0元
2、語音識別中音頻幀加和
在語音識別中,會將音頻分為若干個音頻幀,並對每個音頻幀進行傅里葉變換、濾波等處理。由於音頻幀之間疊加部分較多,因此常常需要對音頻幀進行加和,以提升語音識別的準確性。
import numpy as np
# 假設讀入10個音頻幀
frames = np.random.randn(10, 512)
sum_frames = np.cumsum(frames, axis=0)
# 最終的音頻幀
final_frame = sum_frames[-1]
# 語音識別
...
以上代碼的執行過程為:
- 定義一個10行512列的數組
frames
,表示10個音頻幀的特徵信息 - 使用
np.cumsum()
函數對frames
數組進行累加,沿著軸0進行計算 - 獲取累加結果的最後一行的值
sum_frames[-1]
,表示所有音頻幀累加成一個音頻幀的結果 - 對該音頻幀進行語音識別的其他處理
總結
np.cumsum()
是numpy庫中的一個函數,用於對數組元素進行累加並存儲結果。在數據分析、信號處理、語音識別等領域都有廣泛的應用。熟練使用該函數,能夠幫助我們更加高效地進行數據分析和信號處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197227.html