天天看點

numpy基礎(part4)--統計量

鄙人學習筆記,這個筆記以例子為主。

開發工具:Spyder

文章目錄

  • ​​統計量​​
  • ​​算數平均數​​
  • ​​權重平均值​​
  • ​​最值​​
  • ​​中位數​​
  • ​​标準差​​

統計量

算數平均數

設有樣本量為n的樣本:

[x1, x2, ..., xn]      

則樣本的算數平均數為:

m = (x1 + x2 + ... + xn) / n      

相關函數:

np.mean(array)
array.mean()      
  • 例子1

代碼:

import numpy as np

array = np.array([1, 2, 3, 4, 5]) 
m1 = np.mean(array)
m2 = array.mean()
print(m1, m2)      

結果:

numpy基礎(part4)--統計量
  • 例子2

代碼:

import numpy as np

array = np.array([[1, 2, 3, 4, 5],
                  [5, 6, 7, 8, 9]]) 


m1 = np.mean(array)
m2 = np.mean(array, axis = 0)
m3 = np.mean(array, axis = 1)
print('m1:', m1, 'm2:',m2, 'm3:',m3)      

備注:np.mean()方法中,axis = 0表示垂直求均值, axis = 1表示水準求均值,若不設定axis則是求全部資料的均值。

結果:

numpy基礎(part4)--統計量

權重平均值

設有樣本量為n的樣本:

[x1, x2, ..., xn]      

有權重:

[w1, w2, ..., wn]      

則權重平均值為:

m = (x1*w1 + x2*w2 +...+ xn*wn)/(w1 + w2 +...+wn)      

相關函數:

np.average(array, weights = w_array)      
  • 例子

代碼:

import numpy as np

array = np.array([1, 2, 3, 4, 5]) 
w_array = np.array([0.1, 0.2, 0.3, 0.4, 0.5]) 

m = np.average(array, weights = w_array)
print(m)      

結果:

numpy基礎(part4)--統計量

最值

相關函數:

#最大值
np.max()
#最小值 
np.min()
#極值 
np.ptp()

#數組中最大值下标
np.argmax() 
#數組中最小值下标
np.argmin()

#兩個同維數組中對應元素中最大/最小元素構成一個新的數組
np.maximun() 
np.minimun()      
  • 例子1

代碼:

import numpy as np

#産生15個介于[10, 100)區間的随機整數
a = np.random.randint(10, 100, 15)
print(a)
print('最大值:', np.max(a),'最小值:', np.min(a),
      '極值:', np.ptp(a), '最大值下标:', np.argmax(a),
      '最小值下标:', np.argmin(a))      

結果:

numpy基礎(part4)--統計量
  • 例子2

代碼:

import numpy as np

array01 = np.array([1, 2, 3, 4, 5, 6, 7])
array02 = np.array([7, 6, 5, 4, 3, 2,1])

print(np.maximum(array01, array02))
print(np.minimum(array01, array02))      

結果:

numpy基礎(part4)--統計量

中位數

設有樣本量為n的樣本:

[x1, x2, ..., xn]      

将樣本按照大小排序,取中間位置的元素。

若n為奇數,則中位數為最中間的元素。

若n為偶數,中位數為最中間的兩個元素的平均值

  • 例子

代碼:

import numpy as np

array01 = np.array([1, 2, 3, 4, 5, 6, 7])
array02 = np.array([1, 2, 3, 4, 5, 6, 7, 8])

print('array01中位數', np.median(array01), '\n',
      'array02中位數', np.median(array02))      

結果:

numpy基礎(part4)--統計量

标準差

相關函數:

np.std(array)           # 總體标準差
np.std(array, ddof=1)   # 樣本标準差      
  • 例子

代碼:

import numpy as np

array = np.array([1, 2, 3, 4, 5, 6, 7])

#總體标準差
s01 = np.std(array)         
#樣本标準差
s02 = np.std(array, ddof=1)

print('總體标準差:', s01, '\n',
      '樣本标準差:', s02)