random.uniform()总结

本文详细介绍了numpy库中random模块的各种函数,如uniform用于生成均匀分布的浮点数,rand和randint生成指定范围的随机整数,以及choice实现概率分布的随机选择。涵盖了从基本的随机数生成到复杂的数据采样和概率操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

random.uniform()总结

from numpy import random

numpy.random.uniform(low=0.0, high=1.0, size=None)
生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0)

>>> random.uniform()
0.3999807403689315
>>> random.uniform(size=1)
array([0.55950578])
>>> random.uniform(5, 6)
5.293682668235986
>>> random.uniform(5, 6, size=(2,3))
array([[5.82416021, 5.68916836, 5.89708586],
       [5.63843125, 5.22963754, 5.4319899 ]])

numpy.random.rand(d0, d1, …, dn)
生成一个(d0, d1, …, dn)维的数组,数组的元素取自[0, 1)上的均分布,若没有参数输入,则生成一个数

>>> random.rand()
0.4378166124207712
>>> random.rand(1)
array([0.69845956])
>>> random.rand(3,2)
array([[0.15725424, 0.45786148],
       [0.63133098, 0.81789056],
       [0.40032941, 0.19108526]])
>>> random.rand(3,2,1)
array([[[0.00404447],
        [0.3837963 ]],

       [[0.32518355],
        [0.82482599]],

       [[0.79603205],
        [0.19087375]]])

numpy.random.randint(low, high=None, size=None, dtype=‘I’)
生成size个整数,取值区间为[low, high),若没有输入参数high则取值区间为[0, low)

>>> random.randint(8)
5
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
        [1, 4, 1]],

       [[2, 2, 5],
        [7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
        [2, 7, 2]],

       [[2, 7, 6],
        [4, 7, 7]]], dtype=int64)

numpy.random.random_integers(low, high=None, size=None)
生成size个整数,取值区间为[low, high], 若没有输入参数high则取值区间为[1, low],注意这里左右都是闭区间

>>> random.random_integers(5)
1
>>> random.random_integers(5, size=1)
array([2])
>>> random.random_integers(4, 5, size=(2,2))
array([[5, 4],
       [4, 4]])

numpy.random.random(size=None)
产生[0.0, 1.0)之间的浮点数

>>> random.random(5)
array([0.94128141, 0.98725499, 0.48435957, 0.90948135, 0.40570882])
>>> random.random()
0.49761416226728084

相同用法:
numpy.random.random_sample
numpy.random.ranf
numpy.random.sample (抽取不重复)

numpy.random.bytes(length)
生成随机字节

>>> random.bytes(1)
b'%'
>>> random.bytes(2)
b'\xd0\xc3'

numpy.random.choice(a, size=None, replace=True, p=None)
从a(数组)中选取size(维度)大小的随机数,replace=True表示可重复抽取,p是a中每个数出现的概率

若a是整数,则a代表的数组是arange(a)

>>> random.choice(5)
3
>>> random.choice([0.2, 0.4])
0.2
>>> random.choice([0.2, 0.4], p=[1, 0])
0.2
>>> random.choice([0.2, 0.4], p=[0, 1])
0.4
>>> random.choice(5, 5)
array([1, 2, 4, 2, 4])
>>> random.choice(5, 5, False)
array([2, 0, 1, 4, 3])
>>> random.choice(100, (2, 3, 5), False)
array([[[43, 81, 48,  2,  8],
        [33, 79, 30, 24, 83],
        [ 3, 82, 97, 49, 98]],

       [[32, 12, 15,  0, 96],
        [19, 61,  6, 42, 60],
        [ 7, 93, 20, 18, 58]]])

numpy.random.permutation(x)
随机打乱x中的元素。若x是整数,则打乱arange(x),若x是一个数组,则将copy(x)的第一位索引打乱,意思是先复制x,对副本进行打乱处理,打乱只针对数组的第一维

>>> random.permutation(5)
array([1, 2, 3, 0, 4])
>>> random.permutation(5)
array([1, 4, 3, 2, 0])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[1, 2, 3],
       [4, 5, 6]])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[4, 5, 6],
       [1, 2, 3]])

numpy.random.shuffle(x)
与permutation类似,随机打乱x中的元素。若x是整数,则打乱arange(x). 但是shuffle会对x进行修改

>>> a = arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> random.permutation(a)
array([1, 4, 3, 2, 0])
>>> a
array([0, 1, 2, 3, 4])
>>> random.shuffle(a)
>>> a
array([4, 1, 3, 2, 0])

numpy.random.seed(seed=None)
设置随机生成算法的初始值

转自 https://www.cnblogs.com/JetReily/p/9398148.html

### Python 中 `random.uniform` 函数的用法 在 Python 的标准库中,`random` 模块提供了多种生成随机数的功能。其中,`random.uniform(a, b)` 方法用于生成一个指定范围内的浮点数[^2]。 #### 参数说明 - **a**: 范围下限。 - **b**: 范围上限。 返回值是一个介于 `[a, b]` 或 `[b, a]` 之间的随机浮点数(注意:即使 `a > b`,函数仍然有效)。如果 `a < b`,则生成的数值落在区间 `[a, b)`;反之,则落在 `[b, a)`。 以下是具体的代码示例: ```python import random # 示例一:生成 [1.0, 2.0) 范围内的随机浮点数 value_1 = random.uniform(1.0, 2.0) # 示例二:生成 [-5.0, 5.0) 范围内的随机浮点数 value_2 = random.uniform(-5.0, 5.0) print(f"Random value between 1.0 and 2.0: {value_1}") print(f"Random value between -5.0 and 5.0: {value_2}") ``` 上述代码展示了如何通过调用 `random.uniform()` 来获取不同区间的随机浮点数。每次运行的结果都会有所不同,因为它是基于伪随机算法生成的。 此外,在实际应用中,可以通过设置种子来控制随机序列的行为。例如: ```python import random random.seed(42) # 设置固定的种子以便重复实验结果 example_value = random.uniform(10.0, 20.0) print(f"Example with fixed seed: {example_value}") ``` 此部分涉及到了 `sys` 和其他模块的内容[^3],虽然它们不直接影响 `random.uniform` 的功能,但在构建更复杂的脚本时可能会被组合使用。 --- #### 注意事项 尽管 `random.uniform` 提供了一个简单的方法来生成连续分布的随机数,但如果需要更高精度或者满足某些统计学需求,可能还需要考虑 NumPy 库中的替代方案或其他概率分布模型。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值