numpy中的np.random用法

本文详细介绍了Python numpy库中的几个随机数生成函数,包括np.random.rand()、np.random.random()、np.random.randn()、np.random.randint()、np.random.random_integers()以及np.random.choice()。这些函数用于生成不同分布和范围的随机数,如均匀分布、正态分布的随机数,以及从给定数组中按概率选择元素。此外,还提到了np.random.seed()用于设置随机数生成的种子,确保可重复性。
该文章已生成可运行项目,

一、np.random.rand():生成指定维度的[0,1)间的随机数

np.random.rand(4,3);///生成4行3列的数组,数组中内一个元素都是[0,1)间的随机数

二、np.random.random():生成指定维度的[0,1)间的随机数

np.random.random([4,3]);///生成4行3列的数组,数组中内一个元素都是[0,1)间的随机数,等同于np.random.rand();

三、np.random.randn():生成的随机数服从正态分布

np.random.randn();///没有参数,只返回一个数据
np.random.randn(2,4);///返回[2,4]的数组,数组中的元素符合正态分布

四、np.random.randint(low,high,size=none,dtype=‘I’):范围为[low,high),dtype默认为int

np.random.randint(1,size=5):
返回[0,1)之间的随机整数,尺寸为5,因此只有0
array([0,0,0,0,0])

五、np.random.random_integers(low,high = None,size = None)–>返回范围为[low,high] 闭区间 随机整数

np.random.random(size = (2,2))
[[ 0.25303772   0.45417512]
 [ 0.76053763   0.12454433]]

六、np.random.choice(a, size = None, replace = True, p = None) --> 从给定数组a中随机选择,p可以指定a中每个元素被选择的概率,当replace = False时,返回的数中不可以有重复的

///p是一个list,p的size 必须与a的size一致,p中每个元素对应了a中每个元素被选择的概率
np.random.choice(list_tmp,size = (3,3),p = [0.1,0.6,0.1,0.1,0.1])

七、np.random.seed() -->使随即数据可预测,对于同一个seed,生成的随机数相同

np.random.seed(0)
>>>np.random.rand(1)
array([0.5488135])
>>>np.random.seed(1)
>>>np.random.rand(1)
array([0.4359949])
>>>np.random.seed(1)
>>>np.random.rand(1)
array([0.4359949])
本文章已经生成可运行项目
### 关于 `np.random.random` 的详细介绍 #### 函数定义 `np.random.random` 是 NumPy 库中用于生成 `[0.0, 1.0)` 范围内的均匀分布随机浮点数的函数。它返回一个或一组随机数,具体取决于传入的参数。 #### 参数说明 该函数接受一个可选参数 `size`,表示输出数组的形状。如果未提供此参数,则默认返回单个浮点数值。 - **`size`**: 定义输出数组的形状。可以是一个整数或者元组形式。如果不传递任何值,默认为 None,此时会返回单一的随机浮点数[^5]。 #### 返回值 返回的是一个 ndarray 或者单独的 float 值,其数据类型为 `float64`。 #### 使用示例 以下是几个常见的使用案例: ```python import numpy as np # 单个随机数 single_random_value = np.random.random() print(single_random_value) # 随机数组 (一维) random_array_1d = np.random.random(size=5) print(random_array_1d) # 随机二维数组 random_array_2d = np.random.random((3, 4)) print(random_array_2d) ``` 以上代码分别展示了如何生成单个随机数、一维随机数组以及二维随机数组的情况。 #### 特殊用途 当需要生成更大范围或其他类型的随机数时,可以通过简单的算术运算扩展 `np.random.random()` 的结果。例如,要生成 `[a, b)` 范围内的随机数,可以用如下方法实现: \[ \text{rand\_num} = a + (\text{b-a}) * \text{np.random.random()} \] 下面给出具体的例子来展示这一过程: ```python low = 5 high = 10 custom_range_randoms = low + (high - low) * np.random.random(10) print(custom_range_randoms) ``` 这里通过调整比例因子 `(high-low)` 和偏移量 `low` 来改变原始 `[0,1)` 区间到目标区间 `[5,10)` 上去[^6]。 #### 性能考量 由于基于底层优化过的 C 实现,因此即使对于大规模矩阵操作而言也具有相当高的效率表现。不过需要注意的是,在某些特殊情况下可能还需要考虑种子设定等问题以便重复实验结果一致性需求得到满足。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值