python numpy中cumsum的用法詳解

2022-10-04 16:00:36 字數 2188 閱讀 8041

cumsum :計算軸向元素累加和,返回由中間結果組www.cppcns.com成的陣列

重點就是返回值是「由中間結果組成的陣列」

以下**在python3.6版本執行成功!

下面看**,定義乙個2*2*3的陣列,所以其shape是2,2,3,索引分別0,1,2

shape索引2

0213

2**:

imp程式設計客棧ort numpy as np

arr = np.array([[[1,2,3],[8,9,12]],[[1,2,4],[2,4,5]]]) #2*2*3

pr程式設計客棧int(arr.cumsum(0))

print(arr.cumsum(1))

print(arr.cumsum(2))

輸出結果:

#cumsum(0)

[[[ 1  2  3]

[ 8  9 12]]

&nb程式設計客棧sp;[[ 2  4  7]

[10 13 17]]]

#cumsum(1)

[[[ 1  2  3]

[ 9 11 15]]

[[ 1  2  4]

[ 3  6  9]]]

#cumsum(2)

[[[ 1  3  6]

[ 8 17 29]]

[[ 1  3  7]

[ 2  6 11]]]

注釋:四維陣列實現

下面看乙個四維陣列2*2*2*4,索引值為0,1,2,3

**:import numpy as np

arr = np.arange(32).reshape((2,2,2,4))

print(arr)

print(arr.cumsum(0))

print(arr.cumsum(1))

print(arr.cumsum(2))

print(arr.cumsum(3))

arr:

[[[[ 0 1 2 3]

[ 4 5 6 7]]

[[ 8 9 10 11]

[12 13 14 15]]]

[[[16 17 18 19]

[20 21 22 23]]

[[24 25 26 27]

[28 29 30 31]]]]

arr是乙個2*2*2*4四維矩陣,索引值為0,1,2,3

cumsum(0):實現0軸上的累加即:以最外面陣列元素為單位即

[[[ 0 1 2 3]

[ 4 5 6 7]]

[[ 8 9 10 11]

[12 13 14 15]]]

與[[[16 17 18 19]

[20 21 22 23]]

[[24 25 26 27]

[28 29 30 31]]]]

對應位置元素相加起來

結果:[[[[ 0 1 2 3]

[ 4 5 6 7]]

[[ 8 9 10 11]

[12 13 14 15]]]

[[[16 18 20 22]

[24 26 28 30]]

[[32 34 36 38]

[40 42 44 46]]]]

cumsum(1):實現1軸上的累加即:以次外面元素為單位,累加:

[[ 0 1 2 3]

[ 4 5 6 7]]

加[[ 8 9 10 11]

[12 13 14 15]]

加[[16 17 18 19]

[20 21 22 23]]

加[[24 25 26 27]

[28 29 30 31]]

累程式設計客棧計過程產生的中間結果要記錄到陣列中

所以,結果:

[[[[ 0 1 2 3]

[ 4 5 6 7]]

[[ 8 10 12 14]

[16 18 20 22]]]

[[[16 17 18 19]

[20 21 22 23]]

[[40 42 44 46]

[48 50 52 54]]]]

cumsum(2)就對應從[ 0  1  2  3]陣列元素開始實現累加,然後記錄中間結果

cumsum(3)對應的是從最裡面最小的陣列元素,即從0開始實現累加,記錄中間結果

本文標題: python numpy中cumsum的用法詳解

本文位址:

python numpy中nonzero 的用法

當使用布林陣列直接作為下標物件或者元組下標物件中有布林陣列時,都相當於用nonzero 將布林陣列轉換成一組整數陣列,然後使用整數陣列進行下標運算。nonzeros a 返回陣列a中值不為零的元素的下標,它的返回值是乙個長度為a.ndim 陣列a的軸數 的元組,元組的每個元素都是乙個整數陣列,其值為...

python numpy中nonzero 的用法

當使用布林陣列直接作為下標物件或者元組下標物件中有布林陣列時,都相當於用nonzero 將布林陣列轉換成一組整數陣列,然後使用整數陣列進行下標運算。nonzeros a 返回陣列a中值不為零的元素的下標,它的返回值是乙個長度為a.ndim 陣列a的軸數 的元組,元組的每個元素都是乙個整數陣列,其值為...

python numpy中nonzero 的用法

當使用布林陣列直接作為下標物件或者元組下標物件中有布林陣列時,都相當於用nonzero 將布林陣列轉換成一組整數陣列,然後使用整數陣列進行下標運算。nonzeros a 返回陣列a中值不為零的元素的下標,它的返回值是乙個長度為a.ndim 陣列a的軸數 的元組,元組的每個元素都是乙個整數陣列,其值為...