数据可视化(随机漫步)

综合应用随机数样本生成及统计分析

需求分析

①数据从0开始,每次步长为1或者-1,随机漫步100次,统计每次累计的步数;

②统计本次随机漫步的累计步数的最大值和最小值;

③设置临界值为5,分析出第一次到达临界值(正负5均可)的步数

扩展需求

使用matplotlib绘制折线图,对数据进行可视化显示

技术分析

①使用normal生成标准的正态(高斯)分布的样本值;

②使用np.where实现数据转化

③使用min、max、cumsum、argmax统计函数进行数据分析

④使用matplotlib模块进行可视化呈现

以下是代码实现:

# 引入模块
import numpy as np
import matplotlib.pyplot as plt

# 设置漫步步数为100
n_steps = 100
# 产生正态(高斯)分布的样本值100个
draws = np.random.normal(0, 2, size=n_steps)
print(draws)

# 使用条件逻辑表述重置数据元素值
steps = np.where(draws>0, 1, -1)
print(steps)
# 统计每次漫步累计的总步伐个数100个
walk = steps.cumsum()
print(walk)
# 漫步累计最大步数
print('step max:>', walk.max())
# 漫步累计最小步数
print('step min:>', walk.min())
# 第一次达到临界值累计正负10步的步数
print((np.abs(walk) >= 5).argmax())

# 创建x轴坐标值
x = np.array(np.arange(n_steps))
# 创建y轴坐标值
y = walk

# 绘制一张图
plt.figure()
# 设置x轴和y轴的数据
plt.plot(x, y, label='max:')
# 设置图标标题
plt.title('Random walk +1/-1 steps(China_soft_i CTO data)')
# 设置x轴标注文字
plt.xlabel('step(s)')
# 设置y轴标注文字
plt.ylabel('sum(walk)')
# 显示图标,.save_fig('xxx.jpg')保存图表图片
plt.show()

运行上述代码,得到结果如下:

数据可视化(随机漫步)_第1张图片

你可能感兴趣的:(数据可视化处理,numpy,Python_numpy)