np.mean()和np.std()函數


一、mean() 函數定義:
numpy.mean(a, axis, dtype, out,keepdims )

mean()函數功能:求取均值
經常操作的參數為axis,以m * n矩陣舉例:

  • axis 不設置值,對 m*n 個數求均值,返回一個實數
  • axis = 0:壓縮行,對各列求均值,返回 1* n 矩陣
  • axis =1 :壓縮列,對各行求均值,返回 m *1 矩
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(a)
print(type(a))
print(np.mean(a))
print(np.mean(a, axis=0)) # axis=0,計算每一列的均值
print(np.mean(a, axis=1)) # axis = 1計算每一行的均值

output:

[[1 2]
 [3 4]]
<class 'numpy.ndarray'>
2.5
[2. 3.]
[1.5 3.5]

二、numpy.std(aaxis=Nonedtype=Noneout=Noneddof=0keepdims=<no value>)

這個函數是用來求標准差的。axis=0時,表示求每一列標准差,axis=1時,表示求每一行標准差,當axis=None時,表示求全局標准差。

其次numpy計算的為總體標准偏差,即當ddof=0時,計算有偏樣本標准差;一般在擁有所有數據的情況下,計算所有數據的標准差時使用,即最終除以n。

當ddo = 1時,表示計算無偏樣本標准差,最終除以n-1

import numpy as np
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
pian = np.std(a, ddof = 0) # 有偏
print("std有偏計算結果:",pian)
orig = np.sqrt(((a - np.mean(a)) ** 2).sum() / a.size)
print("有偏公式計算結果:",orig)
no_pian = np.std(a, ddof = 1) # 無偏
print("std無偏計算結果:",no_pian)
orig1 = np.sqrt(((a - np.mean(a)) ** 2).sum() / (a.size - 1))
print("無偏公式計算結果:",orig1)

output:

std有偏計算結果: 2.8722813232690143
有偏公式計算結果: 2.8722813232690143
std無偏計算結果: 3.0276503540974917
無偏公式計算結果: 3.0276503540974917

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM