2017-03-20 4 views
1

の範囲にない浮動小数点数を0.2*np.piの間に描画したいと思います。ブルートフォース法は除外された領域が非常に大きいので、これは超低速ですが、ブルートフォース法はPython:ある区間を除いたランダムな浮動小数点数を描画する

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 

です。時間のかかる方法はありませんか?

ありがとうございます!

答えて

4

円を扱っているので、これは範囲番号[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 
+1

@HuShuおやおや未満のものを正規化します。これは賢明な答えだった、私はそれを自分自身upvoted。 – pjs

+1

@pjsが合意しました! :) – HuShu

4

除外範囲のサイズを事前に計算します(size = np.radians(298) - np.radians(101))。 の値を0.と​​の間で生成します。 ynp.radians(101)より大きい場合は、sizeを追加します。

関連する問題