python生成一组符合正态分布的数据_使用Numpy生成正态分布数据

本文介绍如何使用Python的Numpy库生成符合正态分布的身高和体重数据,通过设置均值、标准差和大小生成数据,并通过调整条件排除异常值。示例代码展示了生成女性身高、BMI和体重数据的过程,并最终合并男女数据,保存为CSV文件。
摘要由CSDN通过智能技术生成

如何使用Python生成正态分布的人员身高体重信息?

下面是生成的数据的分布情况,身高数据在各个区间大致呈正态分布。

对应的代码如下,先用pd.cut进行各个区间分桶,然后使用sort_index按照区间名排序。

f = pd.read_csv('./datasets/boygirl200.csv', encoding='gbk')des = df.describe()bins = range(des.height['min'].astype(int), des.height['max'].astype(int), 2)cutdf = pd.cut(df.height, bins=bins, include_lowest=True)cutdf.value_counts().sort_index().plot.bar()

生成正态分布数据

使用np.random.normal(mean,scale,size)可以生成很多数值呈正态分布数字。如下图所示,mean就是中间竖线的位置,scale就是横向挤压或拉伸程度,size是生成数字个数。

但是这里也有问题,由于是基于概率的,就无法避免生成及少量超级小或超级大的值,比如身高1厘米或体重300公斤的异常值数据都有可能产生。最简单的情况是对生成后的数据用DataFrame.loc()条件表达式直接截取最小值和最大值之间的值。

下面是代码部分。首先使用一个男生名字列表来生成一系列name字段,这个数据可以从下面的百度网盘下载。链接:https://pan.baidu.com/s/1jf-H-VdQ5gS44ODaajJmLQ 密码:blvp

girlnamedf=pd.read_csv('datasets/En_girl_names.csv',index_col=0)

girld

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值