python方差函數
❶ python基礎 numpy中的常見函數有哪些
有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。
Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。
數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)范圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a
數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合
數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組
數組修剪和壓縮
1.a.clip(m,n)設置數組a的范圍為(m,n),數組中大於n的元素設定為n,小於m的元素設定為m
2.a.compress()返回根據給定條件篩選後的數組
數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所佔的位元組數
6.a.nbytes整個數組a所佔的內存空間7.a.astype(int)轉換a數組的類型為int型
數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標准差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關系數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和
以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。
❷ python輸入 3 個數,這里指定為 11,2,5,計算它們的均值和方差.
importnumpyasnp
arr=[11,2,5]
arr_mean=np.mean(arr)
arr_var=np.var(arr)
print("平均值為:%f"%arr_mean)
print("方差為:%f"%arr_var)
❸ python編程統計列表中各數據的方差和標准差請編寫主函數和計算方差的函數var。(不能引用庫里)
def fangcha(): a=float(raw_input("請輸入a:")) b=float(raw_input("請輸入b:")) c=float(raw_input("請輸入C:")) d=(a+b+c)/3.0 e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0 print "平均數是:%f方差是:%f" %(d,e) fangcha() Python2.7可用
❹ 用python求數據表中數據的均值與方差
以下為代碼:
numstr = input("請輸入全部數據:用英文逗號(,),中文逗號(,),
空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:")
if "," in numstr:
numlist = numstr.split(",")
elif "," in numstr:
numlist = numstr.split(",")
elif " " in numstr:
numlist = numstr.split(" ")
elif " " in numstr:
numlist = numstr.split(" ")
elif " " in numstr:
numlist = numstr.split(" ")
else:
numlist = [numstr]
numlist = list(map(lambda x:x.strip(",").strip(",").
strip(" ").strip(" ").strip(" "), numlist))
for i in numlist.():
try:
a = float(i)
except:
numlist.remove(i)
print("已過濾字元串:%s"%i)
#好了,上面很多隻是方便用戶而已(但還是有一些有用的),主要是下面
numlist = list(map(lambda x:float(x), numlist))#所有字元串轉為浮點
print("最終數列:",numlist)#輸出最終數列,進行核對
average = sum(numlist)/len(numlist)#用數列和除以出列長度得到平均數
variance = 0#方差,先記為0
for i in numlist:#遍歷列表
variance += (i - average) ** 2#反正就是公式對吧,先加進去
variance /= len(numlist)#還是公式,那一長串還得除以一個數列長度
print("均值:%.2f 方差:%.2f"%(average, variance))#分兩行輸出
以下為輸出效果:
請輸入全部數據:用英文逗號(,),中文逗號(,),空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:38,22,99,10,99,7, 25,,40
已過濾字元串:
最終數列: [38.0, 22.0, 99.0, 10.0, 99.0, 7.0, 25.0, 40.0]
均值:42.50
方差:1181.75
以下為解析:
平均值的思路就是總和除以列表長度,方差的思路就是把所有的(x-均值)²加起來,最後再除以一個長度即可。
本程序的優點:輸入時逗號後出現空格與不小心多打逗號等情況都不會出問題,可以接受小數,可以先輸出最終數列以供核對。