1

Pythonで配列の単一の次元からランダムな要素を取得しようとしています。したがって、以下のケースでは、5つのフロートのいずれかを取得したいと思います。

ar = rand(1, 5)

ar = array([[ 0.29889882,  0.84955019,  0.52989055,  0.57220576,  0.16841406]])

5つの要素があり、1つの次元しかない場合、フロートを取得できました。 (ar = rand(5, 1)),

使用:

ar[randrange(0, p.size)]

しかし、単一の次元の配列から値を取得するにはどうすればよいですか?

4

2 に答える 2

0

を参照していると仮定するとnumpy.array、次を使用できます。

>>> import numpy as np
>>> np.array([[ 0.29889882, 0.84955019, 0.52989055, 0.57220576, 0.16841406]])
array([[ 0.29889882,  0.84955019,  0.52989055,  0.57220576,  0.16841406]])
>>> 
>>> 
>>> ar = np.array([[ 0.29889882, 0.84955019, 0.52989055, 0.57220576, 0.16841406]])
>>> ar[:, random.randint(0,4)]
array([ 0.29889882])
>>> ar[:, random.randint(0,4)]
array([ 0.52989055])
于 2012-10-21T11:22:05.520 に答える
0

これを言いましょう:

ar = rand(1, 5)

ar = array([[ 0.29889882, 0.84955019, 0.52989055, 0.57220576, 0.16841406]])

#create a generator object that returns random values from your array

def getGen(array):
    def gen(arr):
        yield arr[:,ramdom.randint(0,(array.size - 1))] #yielding random values
    return gen(array) # returning generator object

genFromArray = getGen(ar) #getting generator
genFromArray() #would return a random value from your array
于 2012-10-21T11:35:32.303 に答える