Skip to main content
 首页 » 编程设计

Python:绘制不包括某些间隔的随机 float

2025年05月04日13findumars

我想在 0. 和 2*np.pi 之间绘制 10 个不在 (np.radians(101) 范围内的 float ),np.radians(298))。蛮力法是

rand_ra=[] 
while len(rand_ra) <= 10: 
    x=np.random.uniform(0.,2*np.pi,100) #pick 100 or whatever number you want 
    for y in x : 
        if 0. <= y <= np.radians(101) and np.radians(298)<=y<= 2.*np.pi : 
             rand_ra.append(y) 
 
print rand_ra 

但这非常慢,因为排除的区域太大了。有没有更省时的方法?

谢谢!

请您参考如下方法:

因为我们处理的是一个圆,这与绘图编号在 [np.radians(298) - 2 * pi, np.radians(101)] 范围内相同.

即:

sample = np.random.uniform(np.radians(298) - 2 * np.pi, np.radians(101), 100) 

然后,将那些小于0的简单归一化

sample[sample < 0] += 2 * np.pi