numpyの区間[a、b]でランダム・フロートをサンプリングするにはどうすればよいですか?整数だけでなく、実数。例えば、numpyの範囲でサンプリング・ランダム・フロート
random_float(5, 10)
は[5, 10]
間の乱数を返します。ありがとう。
numpyの区間[a、b]でランダム・フロートをサンプリングするにはどうすればよいですか?整数だけでなく、実数。例えば、numpyの範囲でサンプリング・ランダム・フロート
random_float(5, 10)
は[5, 10]
間の乱数を返します。ありがとう。
uniform distributionはおそらくあなたが求めていることをするでしょう。
np.random.uniform(5,10) # A single value
np.random.uniform(5,10,[2,3]) # A 2x3 array
import numpy as np
>>> 5 + np.random.sample(10) * 5
array([ 7.14292096, 6.84837089, 6.38203972, 8.80365208, 9.06627847,
5.69871186, 6.37734538, 9.60618347, 9.34319843, 8.63550653])
numpyなしでこれをランダムモジュールで行うことができます。
import random
random.random()*5 + 10
関数として、範囲10〜15の数字が返されます。
>>> import random
>>> def random_float(low, high):
... return random.random()*(high-low) + low
...
>>> random_float(5,10)
9.3199502283292208
>>> random_float(5,10)
7.8762002129171185
>>> random_float(5,10)
8.0522023132650808
random.random()
(上排他的に結合した)0から1にフロートを返します。それを数で掛ければ、より広い範囲が得られます。 ex random.random()*5
は0から5までの数値を返します。これに数値を追加すると下限が得られます。 random.random()*5 +10
は10から15までの数字を返します。なぜnumpyを使ってこれを行うのかは分かりませんが、おそらく私はあなたの意図を誤解しています。
単に 'random.uniform'を使わないのはなぜですか? – DSM
@DSM正直なところ、私はそれについて知らなかったので –