1.数值计算
import numpy
from scipy import stats
speed = [100,86,87,88,111,86,103,87,94,78,77,85,86]
# 求平均值
x = numpy.mean(speed)
print(x)
# 求中值
y = numpy.median(speed)
print(y)
# 求众值
z = stats.mode(speed)
print(z)
# 计算标准差
s = numpy.std(speed)
print(s)
# 计算方差
ss = numpy.var(speed)
print(ss)
# 查找指定百分位数的方法
p = numpy.percentile(speed,90)
print(p)
2.数据分布
2.1 创建一个包含 250 个介于 0 到 5 之间的随机浮点数的数组,并绘制直方图
import numpy
import matplotlib.pyplot as plt
x = numpy.random.uniform(0.0, 5.0, 300)
plt.hist(x, 5)
plt.show()
2.2 正态数据分布
import numpy
import matplotlib.pyplot as plt
x = numpy.random.normal(5.0, 1.0, 10000)
plt.hist(x, 100)
plt.show()
2.3 散点图
import matplotlib.pyplot as plt
x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
plt.scatter(x, y)
plt.show()
2.4 线性回归
import matplotlib.pyplot as plt
from scipy import stats
x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
slope, intercept, r, p, std_err = stats.linregress(x, y)
def myfunc(x):
return slope * x + intercept
mymodel = list(map(myfunc, x))
plt.scatter(x, y)
plt.plot(x, mymodel)
plt.show()
2.5 多项式回归
import numpy
import matplotlib.pyplot as plt
x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]
y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]
mymodel = numpy.poly1d(numpy.polyfit(x, y, 3))
myline = numpy.linspace(1, 22, 100)
plt.scatter(x, y)
plt.plot(myline, mymodel(myline))
plt.show()