统计

“”"
a=[1,2,5,7,6,3]
Mittelwert (1+2+5+7+6+3)/6 # arithmetisch 算术平均
(12576*3)^(1/6) # geometrisch 几何平均
harmonisch
Mediam [1,2,3,5,6,7] 中位数:
mittlere Element eines sortierten Liste, wenn Anzahl ungerade
Mittelwert des mittlere Elemente, wenn Anzahl gerade ist.
Quantil 分位数
gewichtete Mittelwerte 加权平均
gleitendes Mittelwert(moving average)滑动平均
Regression 线性回归
“”"

import numpy as np
import matplotlib.pyplot as plt
from random import randint  

‘’’
import使一个变量名引用整个模块对象
from…import就是在xx中引入(比如from Math import pi)
random.randint(a,b)
作用是随机的生成介于[low,high)之间的size个数,为int
‘’’

Mittelwert

a=[randint(-100, 100) for p in range(100)]
print(a)
s=0
for i in a:
s+=i
mw=s/len(a)
print('Mittelwert mit for: ', mw)
mw=sum(a)/len(a)
print('Mittelwert mit sum: ', mw)
mw=np.average(a)
print('Mittelwert mit np.average: ', mw)

Median 中位数

def median(a):
a=sorted(a)  #对a进行排序
m=len(a)//2  #取整
if len(a)%2==1:      #为奇数个
    return a[m]   #为什么是m不是m+1呢,因为起始是0不是1
else:                #为偶数个
    return (a[m-1]+a[m])/2
print('a sortiert: \n', sorted(a))
print('Median mit for: ', median(a)) 
print('Median mit np.median: ', np.median(a))

Varianz 方差

def Varianz(a):
n=len(a)
mw=sum(a)/n
abw=[delta-mw for delta in a]
v=0
for diff in abw:
    v+=diff*diff
return v/n
print('Varianz mit for: ',Varianz(a))
print('Varianz mit np.var: ',np.var(a))

Standardabweichung 标准差

print('Standardabweichung: ',Varianz(a)**0.5)
print('Stardardabweichung np.std: ', np.std(a))

gewichteter Mittelwert

a=[1,3,2,4,3,4,6,5,7,6,8]
aw=[2*1,3*3,1*2,2*4,4*3,2*5,1*4,1*6,1*5,1*7,1*6,1*8]
#Gewichte addieren: 20
gew=[2/20,3/20,1/20,2/20,4/20,2/20,1/20,1/20,1/20,1/20,1/20]
print('Summe der Gewichte: ',sum(gew))
print(len(a),len(aw),len(gew))
def gewMittel(a,gew):
s=0
for i in range(len(a)):
    s+=a[i]*gew[i]
return s
print('gewichterer Mittelwert: ',gewMittel(a,gew))
    
mwZip=zip(a,gew)
print('mwzip: \n',list(mwZip))

‘’‘zip()函数接受一系列可迭代对象作为参数
将不同对象中相对应的元素打包成一个元组(tuple)
返回由这些元组组成的list列表.
如果传入的参数的长度不等,
则返回的list列表的长度和传入参数中最短对象的长度相同。
‘’’

mwDot=np.dot(a,gew)
print('gew.Mittelwert mit np.dot: ',mwDot)

gleitender Mittelwert

Liste von Punkten

werte=np.sin(np.linspace(1,5,40))
print('linspace: \n',np.linspace(1,5,49))  
plt.plot(werte)
plt.show()

Wir modulieren diese Funktion mit Zufallszahlen

werte_Z=werte*0.5*np.random.randn(40)
plt.plot(werte,'.b',werte_Z,'.g')
plt.show()

Funktion zur Berechnung des gleitenden Mittelwertes

Parameter: ls - Liste der Werte

n - Anzahl der Punkt fuer Mittelwerte

def movAver(ls,n):
ls_copy=ls.copy()
for i in range(1,n):
    ls_copy+=np.concatenate([ls_copy[:i]/i,ls[:-i]])
return ls_copy/n
plt.plot(werte_Z,'.r',movAver(werte_Z,10),'.b')    
plt.show()        

Regression(lineal) 线性回归

from sklearn.linear_model import LinearRegression
import math

在 Sklearn 里面有六大任务模块:分别是分类、回归、聚类、降维、模型选择和预处理

x,y 必须为numpy-Arrays

x=np.array([5,15,20,25,30,35,40,45,50,55,60,65])
print('x: \n',x,x.shape)
x=x.reshape(-1,1)
print('x: \n',x,x.shape)
#a=[1,2,4,9,16,25,36,49,64,81,100,121,144]
y=np.array(a)
rlin_Mod=LinearRegression()
rlin_Mod.fit(x,y)
a_Koeff=rlin_Mod.coef_
b_Koeff=rlin_Mod.intercept_
print('Lineare Regression: \n','y=',a_Koeff,'*x+',b_Koeff)
plt.plot(y,'.g')
plt.show()

mit den Parametern Werte berechnen

yr=[]
for i in range(len(x)):
y_wert=a_Koeff*x[i]+b_Koeff
yr.append(y_wert)
plt.plot(x,y,'*g',x,yr)
plt.show()
r2=rlin_Mod.score(x,y)
print('Regressionskoeffizient: ',math.sqrt(r2))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值