如果想要一个元素不相同的列表我们要如何做?手打?太傻了!当然用随机数了!
随机数
r2 = np.random.rand(2,3)
生成一个两行三列的随机数组
[[0.88708176 0.13370695 0.19753716]
[0.36851851 0.76013292 0.87091384]]
我们可以适当的调整一下随机数的分布,只需要在rand后面加上n
正态分布 中间大两边小
r3 = np.random.randn(3,2)
[[ 0.15901744 0.64586782]
[-1.88507653 1.03553841]
[-1.98657573 -0.2692635 ]]
如果你不想要从-2到2的随机数,而是整数,并且是你指定的范围大小你要如何?
r4 = np.random.randint(1,10,[2,3])
前两个是随机数范围,后面的是生成的形式
[[8 2 7]
[3 6 3]]
当然你想搞一个简单的随机数,不要什么花里胡哨的那就这样:
r5 = np.random.random([2,3])
[[0.1132577 0.17827134 0.26219072]
[0.57738214 0.49881814 0.49624455]]
下面有一个很有意思的方法让你可以确定随机数出现的概率,万恶的抽卡。
其属性如下:
np,random.choice(a,size = None , replace = True ,p=None)
a , 如果 a 是数字就会变成 np.arange
size 决定输出形状 [2,2] 二行二列
replace 输出的数字是否可以重复
p 决定取值概率
下面举个栗子:
r7 = np.random.choice(list('abcde'),
size=[2,2],replace=True,p=[0.10,0.30,0.50,0.05,0.05])
其中list 中的内容让你的随机数是abcde输出的结果如下
[['c' 'c']
['b' 'c']]
如果你用for来运行一百遍,你会发现e的概率真的很小。。。
所以抽卡需谨慎,保底才是最香的啊。。。