目录
1. 函数简介
2. 使用例子
1. 函数简介
numpy中的np.random.choice(arr,size=None,replace=True,p=None),通过给定的一维数组数据产生随机采样。
参数:
- arr: 一维数组或int型变量。若是数组就按照数组中的数据进行采样,若是int型变量,相当于np.arange(a)。
- size:int型变量或者 tuple of ints 决定输出的shape。如果给定的是(m,n,k),那么m*n*k个采样点将会被采样。
- replace:采样是否放回,即决定采样中是否有重复值
- p:一维数组,对应arr数组中每个采样点的概率分布,即每个采样点以多大的概率被采样。没有给出则使用标准分布,每个采样点等概率被采样。
返回值:
samples:单一数值或ndarray
2. 使用例子
import numpy as np#从0-4中等概率采样3个数 可以重复
print(np.random.choice(5,3))
#从0-4中等概率采样3个数 不可以重复
print(np.random.choice(5,3,replace=False))
#注意不放回采样时 size不能比arr数组大
#print(np.random.choice(5,6,replace=False))
#从0-4中以指定概率采样3个数
print(np.random.choice(5,3,p=[0.1,0.1,0.1,0.3,0.4]))
#从0-4中以指定概率采样3个数 不重复
print(np.random.choice(5,3,p=[0.1,0.1,0.1,0.3,0.4],replace=False))
#也可以采样得到一个多维数组 用size指定多维数组大小 默认可重复 等概率
print(np.random.choice(5,(2,2)))
print("---------------")
print(np.random.choice(10,(2,2,3)))
#size=1时 返回一个包含一个采样点的一维数组
print(np.random.choice(5,1))
#size为默认值时 返回一个数值
print(np.random.choice(5))
#size=0 返回一个空数组
print(np.random.choice(5,0))
#arr也可以是某个一维数组或列表
print(np.random.choice([0,100,44,1,55,11],3))
#一维数组或列表也可以是任意类型 不一定为整型
print(np.random.choice(['alice','bob','dancy','baby'],2,replace=False,p=[0.3,0.3,0.2,0.2]))
#实际使用时 一般先创建一个mask 然后对数据进行采样
length = len(data)
mask = np.random.choice(length,size)
data1 = data[mask]