[Tips] 随机数 随机序列 随机排列生成

正态分布

import random as np

np.random.normal(均值, 标准差, 产生随机数数目)

 

柯西分布

标准柯西分布如下生成
numpy.random.standard_cauchy(size)

  

随机排列

t = [1,2,3]
random.shuffle(t)

 

随机选取

如果使用numpy的话,使用numpy.random.choice。它可以从一个int数字或1维array里随机选取内容,并将选取结果放入n维array中返回。

 

#从np.arange(5)的范围内均匀随机取3个元素,等效于np.random.randint(0,5,3)
>>> np.random.choice(5, 3)
array([0, 3, 4])

#根据概率分布[0.1, 0, 0.3, 0.6, 0]从np.arange(5)里面取三个元素。
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0])

# 从np.arange(5)的范围内均匀随机取3个元素,3个元素不可重复,等效于np.random.permutation(np.arange(5))[:3]
>>> np.random.choice(5, 3, replace=False)
array([3,1,0])

>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0])

# 随机选择的对象可以是任意的list,而不是仅仅为整数list
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'],
      dtype='|S11')

  

随机整数

>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])

>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])

=========================================
引用自https://www.cnblogs.com/ymjyqsx/p/7395685.html

  

 

posted @ 2020-03-07 15:08  虚无真仙  阅读(362)  评论(0)    收藏  举报