如何用Python从服从正态分布的n个值样本中生成N组随机数据集?
实现方法
你用的normal大概率是NumPy库的随机正态分布生成函数,有两种很简单的实现方式:
方法1:直接调整size参数(推荐,代码最简)
直接把size参数设置为(N, n),就能一次性生成形状为N行n列的二维数组,每一行就是一组独立的随机数据集:
import numpy as np # 按需修改以下参数 mu = 0 # 均值 sigma = 1 # 标准差 n = 10 # 单组数据集的样本数量 N = 5 # 需要生成的数据集组数 # 生成N组数据集 datasets = np.random.normal(loc=mu, scale=sigma, size=(N, n))
调用datasets[0]即可取第一组数据,datasets[1]取第二组,以此类推。
方法2:循环生成(逻辑更直观,适合新手理解)
如果对二维数组不熟悉,也可以写循环重复N次生成过程,把每一组结果存到列表里:
import numpy as np mu = 0 sigma = 1 n = 10 N = 5 datasets = [] for _ in range(N): single_data = np.random.normal(loc=mu, scale=sigma, size=n) datasets.append(single_data)
注意事项
- 只要你不手动固定随机种子,两种方法生成的N组数据集默认都是互不相同的,随机数生成器会自动推进内部状态保证结果不重复。
- 如果需要让生成的结果可复现(每次运行代码得到的N组数据都一样),可以在生成代码前加一行
np.random.seed(42),数字42可以替换为任意整数。
内容的提问来源于stack exchange,提问作者user16857156
相关产品推荐
相关产品推荐

