Numpy使用-随机生成数据

2021-03-07 13:22:14 浏览数 (1)

Numpy库中随机选数

本文中介绍的是如何使用numpy库中的random模块进行随机选择数据

为什么写

在自己学习pandas和numpy库进行数据处理的过程,有时候会缺乏数据。虽然网上有很多的数据,但是需要时间去查找。

当自己在整理总结相关知识点的时候,需要立马用到一些简单的数据,于是想到了这个方法:随机模拟些简单的数据来进行处理和学习,于是想到了Numpy中的相关功能。

random.choice

在随机生成数据的过程中主要使用的是random.choice方法,下面具体介绍其方法的使用。

参数解释
代码语言:javascript复制
np.random.choice(a, size=None, replace=True, p=None)
  • a:待抽取数据的对象,可以是一个具体的数值,也可以是列表或者元组
  • size:抽取多少个数据
  • replace:表示是否放回,为True表示放回(默认方式),则抽取的数据可能存在重复的值
  • p:表示每个元素被抽取的概率;如果没有指定,所有元素被选取的概率是相等的;p的长度和a的必须相同
抽取数值型数据
代码语言:javascript复制
import numpy as np
import pandas as pd
是否放回
指定抽取概率

通过参数p来指定抽取的概率,其中p的长度和待抽取的数据a的长度必须一致

参数a和参数p的长度不一致导致报错

抽取列表数据
抽取元组数据

使用案例

通过一个随机生成的数据来模拟pandas中的DataFrame数据:

代码语言:javascript复制
import pandas as pd
import numpy as np

name_list = ["小明","小红","张三","李四","王五","小孙","小周"]
subject_list = ["语文","数学","英文","生物","物理","地理",'化学']

# np.random.choice(list(range(50,101)),30) 同下效果
score_list = np.random.randint(50,100,30).tolist()   # 0-100之间选择30个数

data = pd.DataFrame({
    "name": np.random.choice(name_list,30,replace=True),   # 默认也是放回抽样
    "subject": np.random.choice(subject_list,30),
    "scoer": score_list
})

data

0 人点赞