当前位置: 代码迷 >> 综合 >> Python杂谈 | (9) np.random.choice()函数用法
  详细解决方案

Python杂谈 | (9) np.random.choice()函数用法

热度:22   发布时间:2024-01-15 01:33:57.0

目录

 

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]

 

 

 

 

  相关解决方案