Numpy随机数生成:rand与randn的零基础教程
Numpy是Python科学计算核心库,`np.random`子模块提供随机数生成功能,`rand`和`randn`为常用函数,随机数为伪随机数,固定种子可复现。 `np.random.rand(d0,…dn)`生成**[0,1)均匀分布**随机数,参数指定数组形状(如1维、2维等),所有元素值在[0,1)间,适用于等概率取值场景(如初始化权重)。 `np.random.randn(d0,…dn)`生成**标准正态分布**(均值0、标准差1)随机数,元素集中在-1~1间,极端值概率低,需调整均值/标准差可通过公式`μ+σ*randn`实现,常用于模拟自然数据波动(如噪声)。 两者均接受形状参数,前者均匀分布,后者正态分布,可通过`np.random.seed(seed)`固定种子复现结果。
阅读全文Numpy广播机制:让数组运算更简单的核心技巧
Numpy广播机制解决不同形状数组的元素级运算问题,通过自动扩展小数组形状以匹配大数组合并维度,避免手动reshape,节省内存且高效。核心规则:从右到左匹配维度,每个维度大小需为1或相等,小数组会被广播至与大数组合并形状。例如标量(如10)可广播到任意形状数组;一维数组(如[10,20,30])与2×3二维数组广播时,一维数组重复为2行。三维数组(2×2×2)与二维数组(2×2)广播时,二维数组扩展为2×2×2。若维度不兼容(如2×2与1×3)则报错。应用场景包括元素级操作(如数组加常数)、矩阵标准化等,避免循环,简化代码。掌握广播可大幅提升Numpy数组运算效率与可读性。
阅读全文