下面我来详细讲解“Python3实现随机数”的完整攻略。
1. random库
Python中内置的random库可以生成伪随机数(Pseudorandom Numbers),它可以用来进行随机数的生成。
1.1 生成随机数(整数)
random库中生成随机数的函数有多种,下面介绍其中两个:
- randint(a, b):生成一个[a, b]之间的整数。例如:
import random
random.randint(1, 10) # 生成1~10之间的随机整数
- randrange(start, stop[, step]):根据start、stop和step参数,生成一个[start, stop)之间以step为步长的整数序列中的随机整数。例如:
import random
random.randrange(0, 100, 2) # 生成0~100之间以2为步长的随机整数序列中的随机整数
1.2 生成随机数(实数)
- random():生成[0, 1)之间的实数。例如:
import random
random.random() # 生成[0, 1)之间的随机实数
- uniform(a, b):生成[a, b]之间的实数。例如:
import random
random.uniform(1.0, 2.0) # 生成1.0~2.0之间的随机实数
1.3 随机浮点数精度
- round(x, n):将x保留n位小数。例如:
import random
x = random.uniform(1.0, 2.0)
round(x, 2) # 保留两位小数
2. numpy库
numpy库是Python中一个常用的科学计算库,其中也提供了随机数的生成函数。
2.1 生成随机数(整数)
numpy库中生成随机数的函数有多种,下面介绍其中两个:
- numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个low到high(不包括high)之间的整数,可选size参数控制生成的随机数的形状,可选dtype参数控制生成的随机数数据类型。例如:
import numpy as np
np.random.randint(0, 10, size=(2,3)) # 生成2行3列,元素值在0~10之间的随机整数矩阵
- numpy.random.choice(a, size=None, replace=True, p=None):从给定的列表、数组等序列中生成随机数,可选size参数控制生成的随机数个数,可选replace参数控制随机数是否可重复选择,可选p参数控制序列中每个元素被选择的概率(需要和a中元素个数相同)。例如:
import numpy as np
a = ['red', 'green', 'blue']
np.random.choice(a, size=2, replace=True, p=[0.1, 0.3, 0.6]) # 从列表a中生成两个随机元素,元素可能重复,blue元素被选中的概率最大
2.2 生成随机数(实数)
- numpy.random.rand(d0, d1, ..., dn):生成[0, 1)之间的实数,可选参数d0, d1, ..., dn控制生成的随机数的形状。例如:
import numpy as np
np.random.rand(2,3) # 生成2行3列元素值在[0, 1)之间的随机实数矩阵
- numpy.random.uniform(low=0.0, high=1.0, size=None):生成[low, high)之间的实数,可选参数size控制生成的随机数的形状。例如:
import numpy as np
np.random.uniform(0, 1, size=(2,3)) # 生成2行3列元素值在[0, 1)之间的随机实数矩阵
至此,本篇攻略讲解了Python3中随机数生成的两种方式。下面提供一些示例说明。
示例说明
示例1
生成一个长度为10的随机整数数组,元素在10~20之间。
代码实现:
import numpy as np
np.random.randint(10, 21, size=10)
结果输出:
array([18, 18, 10, 19, 13, 15, 19, 10, 10, 19])
示例2
生成一个长度为10的随机实数数组,元素在-5~5之间,保留三位小数。
代码实现:
import numpy as np
np.round(np.random.uniform(-5, 5, size=10), 3)
结果输出:
array([ 0.097, -2.62 , -3.392, 4.402, -3.084, -0.89 , -0.173, 4.134,
1.931, 2.245])
希望以上内容能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3实现随机数 - Python技术站