python中的随机数函数

本文总结了Python中常用的随机函数,包括np.random.rand、np.random.randint、np.random.randn、np.random.random等。介绍了各函数的功能、参数及返回值,如rand生成[0,1)间数据,randn返回标准正态分布样本等,还提及了随机数种子的设置。

python中的随机函数有很多,很容易混淆,这里总结一下。主要参考自:https://blog.youkuaiyun.com/brucewong0516/article/details/79011562

python中常用的随机函数有:1)np.random.rand;2)np.random.randint;3)np.random.randn;4)np.random.random。

1. np.random.rand(d0, d1, ..., dn)

根据给定维度生成[0,1)之间的数据,包含0,不包含1。其中dn表示每个维度的大小,n表示维度的个数。返回值为指定维度的array。

举例:

 1 import numpy as np
 2 
 3 x = np.random.rand(3, 2)
 4 print(x.shape)
 5 print(x)
 7 
 8 '''
 9 输出结果:
10 (3, 2)
11 [[0.55911292 0.5242528 ]
12  [0.15812263 0.88402055]
13  [0.50265009 0.65779738]]
14 '''

2. np.random.randn(d0, d1, …, dn)

randn函数返回一个或一组样本,具有标准正态分布,均值为0,标准差为1。其中dn表示每个维度的大小,n表示维度的个数。返回值为指定维度的array。

举例:

 1 import numpy as np
 2 
 3 x = np.random.randn(3, 2)
 4 print(x.shape)
 5 print(x)
 6 
 7 '''
 8 输出结果:
 9 (3, 2)
10 [[-0.81758026 -0.0527769 ]
11  [ 0.36913285  1.67281363]
12  [ 0.83645057 -0.54296909]]
13 '''

3. np.random.randint(low[, high, size])

返回随机整数,范围区间为[low,high),包含low,不包含high。其中low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int。high没有填写时,默认生成随机数的范围是[0,low)。

 1 import numpy as np
 2 
 3 x = np.random.randint(3)
 4 print(x)
 5 # 1
 6 
 7 x = np.random.randint(1,5)
 8 print(x)
 9 # 3
10 
11 x = np.random.randint(3, size=5)
12 print(x)
13 # [0 1 2 2 0]
14 
15 x = np.random.randint(3, size=[2, 2])
16 print(x)
17 '''
18 [[2 0]
19  [0 1]]
20 '''

4. np.random.random([size])

生成[0,1)之间的浮点数,与np.random.rand()功能类似。举例:

1 import numpy as np
2 
3 x = np.random.random(size=[2, 2])
4 print(x)
5 '''
6 [[0.94329549 0.93561065]
7  [0.33493102 0.67862068]]
8 '''
  • numpy.random.random_sample(size=None)
  • numpy.random.ranf(size=None)
  • numpy.random.sample(size=None)

上面三个函数同样具有类似的功能。

5. np.random.choice(a[, size, replace, p])

从一个给定的一维数组,生成一个随机样本.

参数: a为一维数组类似数据或整数;size为数组维度;repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据;p为数组中的数据出现的概率。

a为整数时,对应的一维数组为np.arange(a)。

 1 import numpy as np
 2 
 3 '''
 4 第一个参数值5对应的a,即传入的数据组
 5 第二个参数3就是数组的size,传入单值时,数据维度是一维的
 6 此处将生成一个一维数据包含3个小于5的整数的数组
 7 '''
 8 x = np.random.choice(5, 3)
 9 print(x)
10 #[4 0 4]
11 
12 #给数组中每个数据出现的概率赋值
13 x = np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
14 print(x)
15 #[3 2 2]
16 
17 #repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据
18 x = np.random.choice(5, 4, replace=False)
19 print(x)
20 #[2 4 1 0]
21 
22 #也可以传入非数字、字符串的数组
23 demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
24 x = np.random.choice(demo_list,size=(3,3))
25 print(x)
26 '''
27 [['sansumg' 'sansumg' 'xiaomi']
28  ['sansumg' 'iphone' 'sansumg']
29  ['lenovo' 'xiaomi' 'lenovo']]
30 '''

6. np.random.seed()

生成随机数的种子,使得每次生成随机数相同。当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数。

举例:

 1 import tensorflow as tf
 2 import numpy as np
 3 from sklearn.utils import check_random_state
 4 
 5 x = np.random.randint(0, 10)
 6 print(x)
 7 # 8
 8 
 9 x = np.random.randint(0, 10)
10 print(x)
11 # 9
12 
13 np.random.seed(0)
14 x = np.random.randint(0, 10)
15 print(x)
16 # 5
17 
18 np.random.seed(0)
19 x = np.random.randint(0, 10)
20 print(x)
21 # 5

转载于:https://www.cnblogs.com/piaojianxue/p/10824477.html

### Python 中生成随机数函数 Python 提供了一个名为 `random` 的标准库模块,用于生成伪随机数。以下是几种常见的随机数生成方式及其具体用法: #### 1. **生成0到1之间的随机浮点数** 可以使用 `random.random()` 函数来生成一个介于 `[0.0, 1.0)` 范围内的随机浮点数[^1]。 ```python import random random_float = random.random() print(random_float) ``` #### 2. **生成指定范围内的随机整数** 通过调用 `random.randint(a, b)` 可以生成一个位于区间 `[a, b]`(包括两端点)中的随机整数[^1]。 ```python random_int = random.randint(1, 10) print(random_int) ``` #### 3. **从序列中随机选取元素** 如果有一个列表或其他可迭代对象,可以通过 `random.choice(seq)` 来从中随机挑选一个元素。 ```python fruits = ["apple", "banana", "orange"] random_fruit = random.choice(fruits) print(random_fruit) ``` #### 4. **打乱序列顺序** 对于需要改变原有序列排列的情况,可以利用 `random.shuffle(seq)` 方法将序列中的元素位置随机化[^2]。 ```python words = ["Python", "is", "powerful", "simple", "and so on..."] random.shuffle(words) print(words) ``` #### 5. **生成特定范围内步长控制的随机数** 当希望得到某个固定跨度内任意数值时,则适用 `random.randrange(start, stop[, step])` 函数[^2]。此功能允许定义起始值、终止值以及增量单位。 ```python random_num_with_step = random.randrange(0, 101, 5) # 在0至100间按每5递增取样 print(random_num_with_step) ``` 以上即为 Python 中一些基础却实用的随机数操作技巧说明。这些工具能够满足大多数日常编程需求场景下的不确定性引入要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值