考虑浮点分辨率的随机化值

2024-10-03 06:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数组的值,我剪辑到一定范围内。但是我不希望大量的值是相同的,所以我在操作之后添加了少量的随机噪声。我想我需要考虑浮点分辨率,这样才能工作

现在我有这样的代码:

import numpy as np
np.minimum(x[:,0:3],topRtBk,x[:,0:3])
np.maximum(x[:,0:3],botLftFrnt,x[:,0:3])
np.add(x[:,0:3],np.random.randn(x.shape[0],3).astype(real_t)*5e-5,x[:,0:3])

其中topRtBkbotLftFrnt是三维边界限制(对于球体有另一个版本)

real_t可配置为np.float32np.float64(代码的其他部分是GPU加速的,这可能最终也是如此)

5e-5是一个神奇的数字,它是np.finfo(np.float32).resolution的两倍,我的问题的关键是:这里使用的正确值是什么

我想用尽可能小的量来抖动这些值,同时保留足够的变化量——我承认,足够的定义是相当错误的。我正在尝试最小化重复值,但是有一些不会杀死我

我想我的问题有两个:这是正确的使用方法吗?什么是合理的随机数比例因子


Tags: 代码importnumpyas剪辑np分辨率数组