random模块与 numpy.random的区别

random模块


1.random.random()

#用于生成一个0到1的

随机浮点数:0<= n < 1.0

import random  
a = random.random()
print(a)  

2.random.uniform(a,b)

#用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。

如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。

import random  
print(random.uniform(1,10))  
print(random.uniform(10,1)) 

3.random.randint(a, b)

#用于生成一个指定范围内的整数。

其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

import random  
print(random.randint(1,10)) 

4.random.randrange([start], stop[, step])

#从指定范围内,按指定基数递增的集合中 获取一个随机数。

random.randrange(10, 30, 2),结果相当于从[10, 12, 14, 16, … 26, 28]序列中获取一个随机数。

random.randrange(10, 30, 2)在结果上与 random.choice(range(10, 30, 2) 等效。

import random  
print(random.randrange(10,30,2)) 

5.random.choice(sequence)

#random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。

参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。

import random  
lst = ['python','C','C++','javascript']  
str1 = ('I love python')  
print(random.choice(lst))
print(random.choice(str1))  

6.random.shuffle(x[, random])

#用于将一个列表中的元素打乱,即将列表内的元素随机排列。

import random
p = ['A' , 'B', 'C', 'D', 'E' ]
random.shuffle(p)  
print (p)  

7.random.sample(sequence, k)

#从指定序列中随机获取指定长度的片断并随机排列。注意:sample函数不会修改原有序列。

import random   
lst = [1,2,3,4,5]  
print(random.sample(lst,4))  
print(lst) 

numpy.random


函数名称np.random. 函数功能 参数说明
rand(d0, d1, …, dn) 产生均匀分布的随机数 dn为第n维数据的维度
randn(d0, d1, …, dn) 产生标准正态分布随机数 dn为第n维数据的维度
randint(low[, high, size, dtype]) 产生随机整数[low,high) low:最小值;high:最大值;size:数据个数
random_sample([size]) 在[0,1)内产生随机数 size:随机数的shape,可以为元祖或者列表,[2,3]表示2维随机数,维度为(2,3)
random([size]) 同random_sample([size]) 同random_sample([size])
ranf([size]) 同random_sample([size]) 同random_sample([size])
sample([size])) 同random_sample([size]) 同random_sample([size])
choice(a[, size, replace, p]) 从a中随机选择指定数据 a:1维数组 size:返回数据形状
bytes(length) 返回随机位 length:位的长度
(1) np.random.rand(2,3) #产生2行三列均匀分布随机数组
Out[7]: 
array([[ 0.35369993,  0.0086019 ,  0.52609906],
       [ 0.31978928,  0.27069309,  0.21930115]])

(2)In [8]: np.random.randn(3,3) #三行三列正态分布随机数据
Out[8]: 
array([[ 2.29864491,  0.52591291, -0.80812825],
       [ 0.37035029, -0.07191693, -0.76625886],
       [-1.264493  ,  1.12006474, -0.45698648]])
(3)In [9]: np.random.randint(1,100,[5,5]) #(1,100)以内的5行5列随机整数
Out[9]: 
array([[87, 69,  3, 86, 85],
       [13, 49, 59,  7, 31],
       [19, 96, 70, 10, 71],
       [91, 10, 52, 38, 49],
       [ 8, 21, 55, 96, 34]])
(4)In [10]: np.random.random(10) #(0,1)以内10个随机浮点数
Out[10]: 
array([ 0.33846136,  0.06517708,  0.41138166,  0.34638839,  0.41977818,
        0.37188863,  0.2508949 ,  0.89923638,  0.51341298,  0.71233872])
(5)In [11]: np.random.choice(10) #[0,10)内随机选择一个数
Out[11]: 7

电脑产生随机数需要明白以下几点:

  1. 随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。
  2. 只要用户不设置随机种子,那么在默认情况下随机种子来自系统时钟(即定时/计数器的值)
  3. 随机数产生的算法与系统有关,Windows和Linux是不同的,也就是说,即便是随机种子一样,不同系统产生的随机数也不一样。
np.random.seed(1234) #设置随机种子为1234
发布了31 篇原创文章 · 获赞 90 · 访问量 9947

猜你喜欢

转载自blog.csdn.net/Jarrodche/article/details/101978693