numpy带有一个random模块,它弥补了Python标准自建random模块的一些不足,效率更高、速度更快、功能更强大。当然这些数都是伪随机数,可以通过seed种子来初始化。下表是numpy.random中的部分函数:
函数 | 功能 |
---|---|
random | 返回一个区间[0.0, 1.0)中的随机浮点数 |
seed | 向随机数生成器传递随机状态种子 |
permutation | 返回一个序列的随机排列,或者返回一个乱序的整数范围序列 |
shuffle | 随机排列一个序列 |
rand | 从均匀分布中抽取样本 |
randint | 根据给定的由低到高的范围抽取随机整数 |
randn | 从均值0,方差1的正态分布中抽取样本 |
binomial | 从二项式分布中抽取样本 |
normal | 从正态分布中抽取样本 |
beta | 从beta分布中抽取样本 |
chisquare | 从卡方分布中抽取样本 |
gamma | 从伽马分布中抽取样本 |
uniform | 从均匀[0,1)中抽取样本 |
>>> import numpy.random as npr # 常用导入方法 >>> npr.random() # 生成1个 0.8898080952787953 >>> npr.random(5) # 生成5个 array([0.32815036, 0.47386 , 0.06808472, 0.3827107 , 0.11855414]) >>> npr.random((2,3)) # 生成2行3列 array([[0.89632852, 0.76430853, 0.37540494], [0.02581418, 0.90653093, 0.78641778]]) >>> npr.seed(1234) # 设置种子 >>> npr.randn() # 生成1个 -0.008678581361935722 >>> npr.randn(3) # 生成3个 array([-1.60921761, -1.26864685, 0.52483734]) >>> npr.randn(2,3) # 生成2行3列 array([[-0.32106129, 1.05697037, -0.59017955], [-0.38786434, -0.04653935, -0.99871643]]) >>> npr.randint(4) # 生成不大于4的整数 2 >>> npr.randint(1,10) # 生成一个1到10之间的整数 1 >>> npr.randint(1,10,5) # 生成5个1到10之间的整数 array([1, 4, 3, 4, 2]) >>> npr.randint(1,10,(2,3)) # 生成2行3列1到10之间的整数,或者用size参数 array([[2, 6, 8], [5, 8, 8]]) >>> npr.rand() 0.4527298092633677 >>> npr.rand(3) array([0.53814784, 0.7906221 , 0.46583634]) >>> npr.rand(2,3) array([[0.76453077, 0.59973081, 0.08094696], [0.70454447, 0.16401332, 0.03234935]]) >>> npr.normal() -0.8241256032186633 >>> npr.normal(3,4) # 指定正态分布的两个重要参数 7.059397334847745 >>> npr.normal(3,4,(2,3)) # 生成2行3列 array([[0.77190185, 1.30157588, 3.54998357], [2.71794779, 4.30157729, 1.1059138 ]])
shuffle(),这个怎么用?
numpy.random.shuffle(array) 返回一个随机打乱的数组。