鄙人學習筆記,這個筆記以例子為主。
開發工具: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)
結果:
- 例子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則是求全部資料的均值。
結果:
權重平均值
設有樣本量為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)
結果:
最值
相關函數:
#最大值
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))
結果:
- 例子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))
結果:
中位數
設有樣本量為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))
結果:
标準差
相關函數:
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)