如何使用numpy.random.rand()函数?
numpy.random.rand()函数用于从[0,1) 上的均匀分布中生成随机的浮点数。这些值可以作为一个单一的值提取,也可以在任何维度的数组中提取。
在这篇文章中,你将了解到这个函数的各种使用情况。
numpy.random.rand()的结构概述
- 语法: numpy.random.rand(d0, d1, ..., dn)
- 目的: 创建一个给定形状的数组,并用[0, 1]上的均匀分布的随机样本来填充它。
- 参数:-d0, d1, ..., dn : int, 可选返回数组的尺寸,必须为非负数。如果没有给出参数,则返回一个Python浮点。
- Returnsoutndarray, shape (d0, d1, ..., dn)随机值。
# Import numpy library
import numpy as np
numpy.random.rand()函数的实现
numpy.random.rand()函数用于生成范围为[0,1) 的随机值。数据点形成一个均匀分布。
让我们用一个例子来理解它
第1步:创建一个numpyrandom.rand() 函数对象
randNum = np.random.rand()
第2步:调用random.rand() 函数对象
randNum
0.35071131536970257
在调用random.rand() 函数时,会返回一个随机的浮点数。这个值将总是在[0,1) 的范围内。而且,这个值在每次调用对象时都会改变。也就是说,每次调用randNum ,都会产生新的随机值。
如果你希望每次都得到相同的值,怎么办?
使用Seed来使数值静态化
np.random.rand() 所返回的值在每次连续调用时都会改变。通过使用np.random.seed() each time when the function is called the same value gets generated.
让我们通过一个例子来看看。
步骤1:设置种子并创建一个numpyrandom.rand() 函数对象
np.random.seed(404)
randNum = np.random.rand()
第2步:调用random.rand() 函数对象
randNum
0.6688250856311798
现在,每次调用random.rand() 函数时,结果值都会保持不变。
到现在为止,我们只生成了一个单一的随机值。但是,如果你希望生成一个随机值数组呢?
使用rand函数创建numpy随机数组
np.random.rand() 函数在默认情况下返回一个单一的随机浮点数。但是这个函数也支持尺寸/形状作为输入,这意味着如果将数组的形状传递给np.random.rand() 函数,将返回一个包含随机值的数组。
让我们在一些例子的帮助下看看这个。
通过numpy随机函数的一维数组
要使用np.random.rand() 函数创建一维随机数组,将数组的形状传入rand()函数。在这种情况下,数组的形状与数组的大小相同。
步骤1:创建一个带有shape的numpyrandom.rand() 函数对象10
a_1D_array = np.random.rand(10)
第2步:调用random.rand() 函数对象
a_1D_array
array([0.34671278, 0.35893712, 0.72728524, 0.6622387 , 0.60089987,
0.72429985, 0.69959325, 0.01746982, 0.69838873, 0.2936516 ])
在调用a_1D_array 对象时,会返回一个包含10个随机浮点值的数组。返回的数组是一个numpy数据类型的数组。
通过numpy随机函数创建二维数组
要使用np.random.rand() 函数创建二维随机数组,在rand()函数中传递数组的形状。形状可以传递为(no_of_rows, no_of_columns)。
步骤1:创建一个带有shape的numpyrandom.rand() 函数对象(5,2)
a_2D_array = np.random.rand(5,2)
第2步:调用random.rand() 函数对象
a_2D_array
array([[0.98466378, 0.8672886 ],
[0.74133785, 0.35450866],
[0.2958581 , 0.02537018],
[0.1601208 , 0.81913225],
[0.1515311 , 0.72590137]])
在调用a_2D_array对象时,会返回一个包含10个维度为(5,2)的随机值的数组。
通过numpy随机函数创建三维数组
要使用np.random.rand() 函数创建三维随机数组,在rand()函数中传递数组的形状。形状应该是(x-值,y-值,z-值)。
第1步:创建一个 带有shape的numpy random.rand() 函数对象 (5,2,2)
a_3D_array = np.random.rand(5,2,2)
第2步:调用random.rand() 函数对象
a_3D_array
array([[[0.00982155, 0.70143236],
[0.22931261, 0.98901718]],
[[0.58154452, 0.75553604],
[0.03819143, 0.24365719]],
[[0.12186642, 0.52535204],
[0.97041149, 0.0633353 ]],
[[0.35950761, 0.2922847 ],
[0.9058014 , 0.95828723]],
[[0.33627233, 0.46659056],
[0.72309022, 0.73980002]]])
在调用a_3D_array对象时,会返回一个包含20个维度为(5,2,2)的随机值的数组。
实用提示
np.random.rand()函数在你想创建一些假数据的情况下很有用。- 你可以使用seed()来保持你的数值不变,每次运行代码单元都是如此。
测试你的知识
Q1: np.random.rand() 函数可以返回这些值:[1, 2, -2, -0.43] 。是真的还是假的?
答: 错。rand()函数返回范围为[0,1) 。
Q2: 如何设置随机数的状态?
答: 可以用np.random.seed() 函数来设置随机数的状态。
Q3: 写一段代码来生成一个10x10x3 范围内的随机数矩阵[0,1) 。
答: np.random.rand(10, 10, 3)