因为网上很多文章都是在依次列举各个函数的功能,并没有做分类,所以记忆上还有使用上都不方便。
本文旨在将功能相似的函数放在一起,以及对它们进行辨析和区分,便于精准地调用。未完待续
最权威的参考来源:Random sampling (numpy.random) — NumPy v1.22 Manual
一、生成随机数
1.1 生成随机整数构成的数组
大部分的生成随机数的函数都是得到浮点型数值的元素,以下的几个函数是生成整数。
randint
random_integers
1.2 生成符合正态分布特征的数组
randn ,标准正态分布,记忆技巧n代表normal——正态的。
standard_normal,与randn类似,但是standard_normal的输入参数为元组(tuple)
1.3 生成符合均匀分布特征的数组
(1)rand,“0~1”均匀分布,[0,1),也即不包括1
(2)random,这个函数是numpy的旧函数,大概因为命名原因,所以后面又加了一个新的API——random_sample,它们之间完全相同(用法和作用上)
(3)random_sample,生成一个[0,1)的复合均匀分布的随机数,和rand不同的地方在于如果要生成多维数组在这里传入的是元组,而在rand里传入的是分散开的数值。
(4)randf([size]),和random_sample等价
(5)sample,和random_sample等价
1.x生成随机字节
bytes
二、随机排列/随机排序
2.1 shuffle
2.2 permutation
这两者的区别在于shuffle没有返回值,直接将arr的排序更改后返回给arr,而permutation则不回更改原arr,因此为了有意义也必须有返回值可供接收。
它们的共同点:如果是多维数组,仅仅对第0维进行随机排列。
2.3 choice
也有排列的效果,只不过它在permutation的返回值基础上做了索引和切片,仅仅保留部分数值。