6

[-10,10]Pythonで様々な次元の範囲で一様確率変数を生成したいです。2,3,4,5....次元の数字。

random.uniform(-10,10) を試しましたが、それは 1 次元だけです。n次元の場合の方法がわかりません。2 次元とは、つまり、

[[1 2], [3 4]...]
4

2 に答える 2

11

がタグ付けされているためnumpy、次のランダム関数を使用できますnumpy.random

>>> import numpy as np
>>> np.random.uniform(-10,10)
7.435802529756465
>>> np.random.uniform(-10,10,size=(2,3))
array([[-0.40137954, -1.01510912, -0.41982265],
       [-8.12662965,  6.25365713, -8.093228  ]])
>>> np.random.uniform(-10,10,size=(1,5,1))
array([[[-3.31802611],
        [ 4.60814984],
        [ 1.82297046],
        [-0.47581074],
        [-8.1432223 ]]])

必要に応じてパラメーターを変更しsizeます。

于 2013-03-04T04:22:24.677 に答える
2

使用するrandom.uniform

import random

random_variable_in_range_of_minus_ten_and_plus_ten = random.uniform(-10, 10)

(設計上) [-10, 10] ではなく [-10, 10] の間であることに注意してください。

n次元の場合、あなたの意図がよくわかりませんが、n個の数値を持つベクトルであると仮定すると、次のことができます。

def n_dimensional_random_variables(n, lbound=-10, rbound=10):
  return [random.uniform(lbound, rbound) for i in xrange(n)]
于 2013-03-04T04:20:19.640 に答える