前言
利用PYTHON按规定概率生成数据,并保存到EXCEL
项目背景
本项目尝试利用PYTHON按规定概率生成数据,方便后续进行数据分析
关键技术
numpy xlwt
项目流程
基本思路
首先利用numpy进行造数,再利用xlwt将数据保存到EXCEL
import module
1 | import numpy as np |
设置总数据条数
1 | count = 600 #总计600条数据 |
需要生成的数值为1,2,3,4
1 | #初始化 |
利用random.choice产生随机数,如下:
num为数值的范围,即:随机抽取1,2,3,4
size:每次抽取数值的个数
replace:如果一次抽取多个数值,是否可以重复?例如size=2,replace=True,则可能抽取到2个相同的数字;如果size=2,replace=False,则这两个数字必然不会相同
p:生成每个数值的概率。p=None表示每个数值的概率相同。p=[0.1, 0.52, 0.26, 0.12],生成1,2,,3,4的概率依次为:0.1,0.52,0.26,0.12。注意这些概率相加必须为1,不然会报错
append是在list后添加一个新的数值,expend是在list后衔接另一个链表
1 | for i in range(count): |
写入文件
1 | workbook = xlwt.Workbook(encoding = 'utf-8') #设置一个workbook,其编码是utf-8 |
上述生成效果大概如下
生成的随机数 |
---|
1 |
2 |
3 |
4 |
拓展
上述只是生成的简单的数据,那么如果我想要以下的效果呢?
随机数范围1~10,每次生成的数据个数随机,生成数据不重复,并用逗号分隔
1,2,3,5,6,7,8,9,10 |
---|
1,2,3,4,5,6,7,8,9,10 |
1,3,4,5,8 |
10 |
2,6,9 |
1 | num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
写入EXCEL
1 | cleaner = (',').join(str(v) for v in list16[i]) # 去掉空格以及[],数据用逗号衔接。可以试试不加这个代码输出什么效果,就知道这行是做什么的了 |
项目后续
后续计划使用生成数据,利用matplotlib绘制各种图表
并加入前端界面,实现交互式操作