np.random.randn(20, 1)
时间: 2024-08-15 07:08:57 浏览: 42
`np.random.randn(20, 1)` 是 NumPy 库中的一个函数,用于生成一组二维随机数组。这个函数具体含义如下:
- `np.random.randn()` 表示使用标准正态分布(平均值为0,标准差为1的高斯分布)生成随机数。
- `(20, 1)` 定义了返回数组的形状,即20行、1列。这意味着生成的结果会有20个独立的一维向量,每个向量都有一个标准正态分布的随机值。
因此,当你运行这段代码时,它会生成一个20x1的矩阵,其中每个元素都是独立的标准正态分布随机数。这对于模拟实验数据、初始化模型权重等场景非常有用。
相关问题
np.random.rand,np.random.randn,np.random.random
`np.random.rand`, `np.random.randn`, 和 `np.random.random` 都是 NumPy 中用于生成随机数的函数:
1. `np.random.rand(size)`:生成一个给定形状(size)的浮点数数组,其值均匀分布在 `[0, 1)` 区间内。所有元素都是独立同分布(i.i.d.)的,即彼此之间相互独立,且服从标准正态分布(均值为0,标准差为1)。
2. `np.random.randn(size)`:与 `rand` 类似,也是生成浮点数数组,但是其元素默认是标准正态分布的随机数,即均值为0,标准差为1。所以即使没有明确指定范围,生成的数也通常会被认为是在 [-3, 3] 左右的范围内。
3. `np.random.random(size)`:同样生成一个给定形状的浮点数数组,数组中的每一个元素都在 `[0, 1)` 范围内,与 `rand` 相似,也是 i.i.d. 的。
这些函数广泛应用于数据预处理、模拟实验等场景中,帮助创建随机样本。如果你需要生成特定范围内的非均匀分布随机数,可以结合其他技巧如 `a * rand() + b` 来调整生成值的范围。
np.random.seed(0) X = np.r_[np.random.randn(20, 2) - [3, 3], np.random.randn(20, 2) + [3, 3]] Y = 20 * [0] + 20 * [1]
这段代码生成了一个包含40个样本的数据集,其中前20个样本属于第0类,后20个样本属于第1类。其中,每个样本由2个特征构成,这些特征是从均值为[3,3]和方差为1的正态分布中随机生成的,前20个样本的特征值都减去了[3,3],后20个样本的特征值都加上了[3,3]。np.random.seed(0)是设置随机数种子,保证每次生成的数据集相同。
阅读全文