NumPy-常用的統計函數

 常用的統計函數

函數 說明
sum 計算數組中的和
mean 計算數組中的均值
var 計算數組中的方差
std 計算數組中的標準差
max 計算數組中的最大值
min 計算數組中的最小值
argmax 返回數組中最大元素的索引
argmin 返回數組中最小元素的索引
cumsum 計算數組中所有元素的累計和
cumprod 計算數組中所有元素的累計積

注意:  每個統計函數都可以按行和列來統計計算;  當 axis=1 時,表示沿着橫軸計算;   當 axis=0 時,表示沿着縱軸計算;

(1)sum()  計算數組中的和   

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求總和: ',np.sum(arr))
# 結果: 190

print('按行求和: ',np.sum(arr,axis=1))
# 結果: [10 35 60 85]

print('按列求和: ',np.sum(arr,axis=0))
# 結果: [30 34 38 42 46]

(2)mean()  計算數組中的均值

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求總均值: ',np.mean(arr))
# 結果: 9.5

print('按行求均值: ',np.mean(arr,axis=1))
# 結果: [  2.   7.  12.  17.]

print('按列求均值: ',np.mean(arr,axis=0))
# 結果: [  7.5   8.5   9.5  10.5  11.5]

(3)var()  計算數組中的方差

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求總方差: ',np.var(arr))
# 結果: 33.25

print('按行求方差: ',np.var(arr,axis=1))
# 結果: [ 2.  2.  2.  2.]

print('按列求方差: ',np.var(arr,axis=0))
# 結果: [ 31.25  31.25  31.25  31.25  31.25]

(4)std()  計算數組中的標準差

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求總標準差: ',np.std(arr))
# 結果: 5.76628129734

print('按行求標準差: ',np.std(arr,axis=1))
# 結果: [ 1.41421356  1.41421356  1.41421356  1.41421356]

print('按列求標準差: ',np.std(arr,axis=0))
# 結果: [ 5.59016994  5.59016994  5.59016994  5.59016994  5.59016994]

(5)max()  計算數組中的最大值

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求最大值: ',np.max(arr))
# 結果: 19

print('按行最大值: ',np.max(arr,axis=1))
# 結果: [ 4  9 14 19]

print('按列最大值: ',np.max(arr,axis=0))
# 結果: [15 16 17 18 19]

(6)min()  計算數組中的最小值 

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求最小值: ',np.min(arr))
# 結果: 0

print('按行最小值: ',np.min(arr,axis=1))
# 結果: [ 0  5 10 15]

print('按列最小值: ',np.min(arr,axis=0))
# 結果: [0 1 2 3 4]

(7)argmax()  返回數組中最大元素的索引     

注意:  無論行列,索引都是從0開始算起的

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求最大索引: ',np.argmax(arr)) 
# 結果: 19

print('按行最大索引: ',np.argmax(arr,axis=1))
# 結果: [4 4 4 4]

print('按列最大索引: ',np.argmax(arr,axis=0))
# 結果: [3 3 3 3 3]

(8)argmin()  返回數組中最小元素的索引 

注意:  無論行列,索引都是從0開始算起的

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('求最小索引: ',np.argmin(arr))
# 結果: 0

print('按行最小索引: ',np.argmin(arr,axis=1))
# 結果: [0 0 0 0]

print('按列最小索引: ',np.argmin(arr,axis=0))
# 結果: [0 0 0 0 0]

(9)cumsum()  計算數組中所有元素的累計和

注意:  無論行列相加,每次相加一個值都會返回一個值

import numpy as np

arr = np.arange(20).reshape(4,5)
print(arr)
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]]

print('累計求和: ',np.cumsum(arr))  
# 結果: [  0   1   3   6  10  15  21  28  36  45  55  66  78  91 105 120 136 153 171 190]

print('按行累計求和: ',np.cumsum(arr,axis=1))
# 結果: 
# [[ 0  1  3  6 10]
#  [ 5 11 18 26 35]
#  [10 21 33 46 60]
#  [15 31 48 66 85]]

print('按列累計求和: ',np.cumsum(arr,axis=0))
# 結果: 
# [[ 0  1  2  3  4]
#  [ 5  7  9 11 13]
#  [15 18 21 24 27]
#  [30 34 38 42 46]]

(10)cumprod()  計算數組中所有元素的累計積

注意:  無論行列相加,每次相加一個值都會返回一個值

import numpy as np

arr = np.arange(1,10).reshape(3,3)
print(arr)
# 結果: 
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

print('累計積: ',np.cumprod(arr))  
# 結果: [     1      2      6     24    120    720   5040  40320 362880]

print('按行累計積: ',np.cumprod(arr,axis=1))
# 結果: 
# [[  1   2   6]
#  [  4  20 120]
#  [  7  56 504]]

print('按列累計積: ',np.cumprod(arr,axis=0))
# 結果: 
# [[  1   2   3]
#  [  4  10  18]
#  [ 28  80 162]]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章