def to_array(x):
# 公共函数转数据结构
if isinstance(x,np.ndarray):
return x
else:
if isinstance(x,(list,tuple)):
return np.array(x)
elif isinstance(x,set):
return np.array(list(x))
to_array({1,2,3,4,5})
def mean(x):
# 均值
return sum(x)/len(x)
mean(counter)
def var(x):
# 方差
x = to_array(x)
return (x - mean(x)).dot(x - mean(x))/(len(x)-1)
var([1,2,2,1,4])
def cov(x,y):
# 协方差
x,y = to_array(x),to_array(y)
return (x-mean(x)).dot(y-mean(y))/(len(x)-1)
cov([1,2,3,4],[1,1,3,4])
# 标准差
def std(x):
return np.sqrt(var(x))
std([1,2,3,4])
# 皮尔逊系数
def pearson(x,y):
return cov(x,y)/(std(x)*std(y))
pearson([1,2,3,4],[1,3,2,4])
# 中值
def median(x):
n = len(x)
index = n // 2
if (index*2)==n:
return sum(sorted(x)[index-1:index+1])/2
else:
return sorted(x)[index]
median([1,2,3,4])
# 众数
def mode(x):
dict_ = {}
temp = 0
for _ in x:
if _ in dict_:
dict_[_]+=1
else:
dict_.update({_:1})
if dict_[_] > temp:
temp = dict_[_]
expr = {}
for k,v in dict_.items():
if v == temp:
expr.update({k:v})
return expr,dict_
mode([0,1,1,2,2,2,2,1])
# 变异系数
def coe(x):
return std(x)/mean(x)
coe([1,2,1,1,1,4,1,1])
统计函数demo
最新推荐文章于 2024-07-06 12:03:33 发布