浅析Python random模块:轻松实现各类随机化功能(一)

您所在的位置:网站首页 python里面随机生成数字 浅析Python random模块:轻松实现各类随机化功能(一)

浅析Python random模块:轻松实现各类随机化功能(一)

2024-06-18 19:34| 来源: 网络整理| 查看: 265

目录

一、python random()模块简介

二、实例:

1. numpy.random.rand

2. numpy.random.randn        

3. numpy.random.randint

4. numpy.random.choice

5. numpy.random.normal 

 6.numpy.random.uniform 

7.numpy.random.binomial

 8.numpy.random.poisson 

9. numpy.random.seed 

一、python random()模块简介

        在NumPy库中的numpy.random模块提供了丰富的随机数生成函数,以下是一些常用的随机数生成函数的一些应用:

numpy.random.rand(d0, d1, ..., dn):生成一个或多个在[0, 1)区间上均匀分布的随机浮点数数组。如果提供多个参数,它们会被解释为数组的维度。

numpy.random.randn(d0, d1, ..., dn):生成一个或多个服从标准正态分布(平均值为0,标准差为1)的随机浮点数数组。

numpy.random.randint(low, high=None, size=None, dtype='l'):生成指定范围内的整数,可以设置尺寸以生成多维数组。

numpy.random.choice(a, size=None, replace=True, p=None):从一维数组a中根据可选的概率分布抽样出大小为size的样本,可以选择是否允许替换。

numpy.random.normal(loc=0.0, scale=1.0, size=None):生成正态分布(高斯分布)的随机数,可指定均值(loc)和标准差(scale)。

numpy.random.uniform(low=0.0, high=1.0, size=None):生成在指定区间的均匀分布随机数。

numpy.random.binomial(n, p, size=None):生成符合二项分布的随机数。

numpy.random.poisson(lam=1.0, size=None):生成泊松分布的随机数。

numpy.random.seed(seed=None):设置随机数生成器的种子,以便重复实验时获得相同的随机数序列。

二、实例: 1. numpy.random.rand

        numpy.random.rand(d0, d1, ..., dn):生成一个或多个在[0, 1)区间上均匀分布的随机浮点数数组。如果提供多个参数,它们会被解释为数组的维度。

import numpy as np # 生成一个单个随机浮点数 single_random_number = np.random.rand() print(single_random_number) # 输出类似于:0.432178 # 生成一个长度为5的一维数组 random_array_1d = np.random.rand(5) print(random_array_1d) # 输出类似于:[0.345678, 0.789012, 0.123456, 0.901234, 0.567890] # 生成一个2行3列的二维数组 random_array_2d = np.random.rand(2, 3) print(random_array_2d) # 输出类似于: # [[0.234567, 0.678901, 0.012345], # [0.890123, 0.345678, 0.765432]] # 更复杂的多维数组 random_array_3d = np.random.rand(2, 3, 4) print(random_array_3d.shape) # 输出 (2, 3, 4),代表一个2×3×4的三维数组

 

2. numpy.random.randn         

        numpy.random.randn(d0, d1, ..., dn):生成一个或多个服从标准正态分布(平均值为0,标准差为1)的随机浮点数数组。

import numpy as np # 生成一个服从标准正态分布的单个随机浮点数 single_random_gaussian = np.random.randn() print(single_random_gaussian) # 输出类似于:-1.2345 或 2.5678 # 生成一个长度为5的一维数组,其中每个元素都服从标准正态分布 random_gaussians_1d = np.random.randn(5) print(random_gaussians_1d) # 输出类似于:[-1.5432, 0.9876, -0.3456, 1.2345, -0.7890] # 生成一个2行3列的二维数组,所有元素也服从标准正态分布 random_gaussians_2d = np.random.randn(2, 3) print(random_gaussians_2d) # 输出类似于: # [[-0.7654, 1.2345, -1.5678], # [ 1.0987, -0.3456, 0.6789]] # 更复杂的多维数组 random_gaussians_3d = np.random.randn(2, 3, 4) print(random_gaussians_3d.shape) # 输出 (2, 3, 4),意味着生成了一个2×3×4的三维数组,其中所有元素都来自标准正态分布

3. numpy.random.randint

基本语法如下:

numpy.random.randint(low, high=None, size=None, dtype='l')

生成指定范围内的整数,可以设置尺寸以生成多维数组。 

low:必需参数,表示生成随机数的下界(包含此边界)。high:必需参数,除非提供了 size 参数,此时 high 可选。表示生成随机数的上界(不包含此边界),即生成的随机数会小于high。size:可选参数,如果提供,则输出为具有指定形状的随机数数组。例如,size=(m,n) 将生成一个 m×n 的二维数组。dtype:可选参数,用于指定生成随机数的数据类型,默认为有符号长整型('l' 对应于 int64)。 import numpy as np # 生成一个1到10之间的随机整数 random_integer = np.random.randint(1, 11) print(random_integer) # 输出类似于:7 # 生成一个形状为(3, 4)的二维数组,元素范围从0到9 random_integers_2d = np.random.randint(0, 10, size=(3, 4)) print(random_integers_2d) # 输出类似于: # [[3, 7, 4, 1], # [9, 2, 8, 5], # [6, 0, 1, 9]] # 生成一个一维数组,长度为5,元素范围从-10到10 random_integers_negative_to_positive = np.random.randint(-10, 11, size=5) print(random_integers_negative_to_positive) # 输出类似于:[-7, 3, 0, 8, -1]

4. numpy.random.choice

        用于从给定的一维数组或者序列中随机抽取元素或多个元素,从而实现数据抽样。这个函数在统计学、机器学习等领域非常有用,比如构建随机样本集、模拟随机事件等。基本语法如下:

numpy.random.choice(a, size=None, replace=True, p=None) a:必需参数,可以是一个一维数组或者整数序列,从中进行选择。size:可选参数,定义了抽取元素的数量和形状。如果是一个整数,那么抽取固定数量的独立样本;如果是元组形式,则确定输出数组的形状。replace:可选参数,默认为 True,表示是否允许重复抽取(有放回抽样)。若设置为 False,则进行无放回抽样,确保抽取的元素互不相同,直到耗尽所有元素为止。p:可选参数,是一个与 a 同型的数组,其中的元素值表示对应元素被抽取的概率分布。如果不提供,则每个元素被抽取的概率相等。 import numpy as np # 假设我们有一个列表 choices = ['apple', 'banana', 'cherry', 'date'] # 随机抽取一个元素 random_item = np.random.choice(choices) print(random_item) # 可能输出 'apple' # 随机抽取3个不同的元素,不放回 random_items_unique = np.random.choice(choices, size=3, replace=False) print(random_items_unique) # 可能输出 array(['banana', 'cherry', 'date'], dtype='


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3