可以用numpy模块实现:
import numpydef cal_mean_std(sum_list_in):
# type: (list) -> tuple
N = sum_list_in.__len__()
narray = numpy.array(sum_list_in)
sum = narray.sum()
mean = sum / N
narray_dev = narray - mean
narray_dev = narray_dev * narray_dev
sum_dev = narray_dev.sum()
DEV = float(sum_dev) / float(N)
STDEV = numpy.math.sqrt(DEV)
print "mean:", mean, " DEV:", DEV, " STDEV:", STDEV
return mean, DEV, STDEV
均值为mean,方差为DEV,标准差是STDEV
传入数据是一个list:sum_list_in
方法一:scores = [91, 95, 97, 99, 92, 93, 96, 98]
scores2 = []
avg = sum(scores) / len(scores)
for i in scores:
if i avg># 少于平均分的成绩放到新建的空列表中
scores2.append(i)
print('低于平均成绩的有:{}'.format(scores2))
方法二:
导入函数库
import numpy as np # 导入 numpy库,as 即为导入的库起一个别称,别称为np
scores1 = [91, 95, 97, 99, 92, 93, 96, 98]
scores2 = []
average = np.mean(scores1) # 一行解决。
print('平均成绩是:{}'.format(average))
# 下面展示一种NumPy数组的操作,感兴趣的同学可以自行去学习哈。
scores3 = np.array(scores1)
print('低于平均成绩的有:{}'.format(scores3[scores3
#-*-coding:utf-8-*-f = open("1.txt")
s = f.read()
f.close()
ls = s.split("\n")
s = ""
for l in ls:
ss = l.split("\t")
le = len(ss)
if le > 2:
sum = 0
for i in range(2,le):
sum += int(ss[i])
print 1.0 *sum / (le-2),'\t',le-2
s += ss[0]+"\t"+ss[1]+"\t"+str(1.0 *sum / (le-2)) + "\t" + str(le-2) + "\n"
f = open("2.txt","w")
f.write(s)
f.close()
运行结果:
41.75 4
70.6666666667 3
35.5714285714 7
cat 2.txt
广州 guangzhou 41.75 4
广州 guangzhouone 70.6666666667 3
深圳 shenzhen 35.5714285714 7