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
数据:
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