python小记(四):python中“numpy.random.choice”的使用方法

python中“numpy.random.choice”的使用方法

  • 前言
  • 一、“numpy.random.choice”


前言

项目上的需要,需要有概率的随机选择列表中的内容。


一、“numpy.random.choice”

一开始以为“random.choice”和“numpy.random.choice”是一个函数,后来发现两个函数截然不同!

choice(a, size=None, replace=True, p=None)

a:如果是一维数组,就表示从这个一维数组中随机采样;如果是int型,就表示从0到a-1这个序列中随机采样。
size:采样结果的数量,默认为1.可以是整数,表示要采样的数量;也可以为tuple,如(m, n, k),则要采样的数量为m * n * k,size为(m, n, k)。
replace:boolean型,采样的样本是否要更换?这个地方我不太理解,测了一下发现replace指定为True时,采样的元素会有重复;当replace指定为False时,采样不会重复。
p:一个一维数组,制定了a中每个元素采样的概率,若为默认的None,则a中每个元素被采样的概率相同。


例子:

import numpy as np

particle_cloud = [[1,2,45,0.1],
                  [2,3,45,0.1],
                  [3,4,45,0.3],
                  [4,2,45,0.2],
                  [5,2,45,0.2],
                  [6,3,45,0.1]]

particles_w = [0.1,0.1,0.3,0.2,0.2,0.1]
particle_list = [5,2,4,5,2,2]
n_particle = len(particle_cloud)

particle_array= np.random.choice(a = n_particle, 
                                 size = n_particle, 
                                 replace=True, 
                                 p = particles_w)

print(particle_array)

结果:

python小记(四):python中“numpy.random.choice”的使用方法_第1张图片

你可能感兴趣的:(python小记,python,numpy)