You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为测试数据添加20%噪声?关于np.random用法的疑问

测试数据添加20%噪声的实现分析

方式一的正确性

方式一完全满足你的核心需求:

x_test_noise = x_test * np.random.uniform(0.8, 1.2, size=x_test.shape)

np.random.uniform(0.8, 1.2, size=x_test.shape)会生成一个和x_test形状完全一致的数组,数组里的每个元素都是从0.8到1.2的均匀分布中独立抽取的随机数。和x_test相乘时,NumPy会执行逐元素乘法,也就是说x_test里的每一个值,都会被乘以一个独一无二的随机数。

方式二的问题

方式二不仅无法实现需求,还存在逻辑冗余:

x_test_noise=pd.DataFrame()
for i in range (len(x_test)):
    for j in range(len(x_test.columns)):
        x_test_noise=x_test*np.random.uniform(0.8,1.2)
  • 每次调用np.random.uniform(0.8,1.2)(不带size参数)只会生成单个标量随机数
  • 两层循环里反复执行x_test_noise=x_test*这个标量,最终所有元素都会被最后一次循环生成的那个随机数相乘,前面的循环操作完全是重复无效的。

结论

直接使用方式一即可,它高效且精准地实现了“每个值乘以不同随机数”的需求;方式二逻辑错误,没有任何使用价值。

内容的提问来源于stack exchange,提问作者Magnifex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:22:03