7

私は python/numpy が初めてで、乱数の行列を含む配列を作成する必要があります。

私がこれまでに持っているのはこれです:

for i in xrange(samples):
    SPN[] = np.random.random((6,5)) * np.random.randint(0,100)

これは、PHP 開発者としての私にとっては理にかなっていますが、Python では機能しません。では、この行列/配列を含む 3 次元配列を作成するにはどうすればよいでしょうか?

4

1 に答える 1

18

ほとんどの関数と同様に、np.random.randintとの両方がパラメーターを受け入れるため、では 1 つのステップで実行します。np.random.uniformnp.randomsizenumpy

>>> SPN = np.random.randint(0, 100, (3, 6, 5))
>>> SPN
array([[[45, 95, 56, 78, 90],
        [87, 68, 24, 62, 12],
        [11, 26, 75, 57, 12],
        [95, 87, 47, 69, 90],
        [58, 24, 49, 62, 85],
        [38,  5, 57, 63, 16]],

       [[61, 67, 73, 23, 34],
        [41,  3, 69, 79, 48],
        [22, 40, 22, 18, 41],
        [86, 23, 58, 38, 69],
        [98, 60, 70, 71,  3],
        [44,  8, 33, 86, 66]],

       [[62, 45, 56, 80, 22],
        [27, 95, 55, 87, 22],
        [42, 17, 48, 96, 65],
        [36, 64,  1, 85, 31],
        [10, 13, 15,  7, 92],
        [27, 74, 31, 91, 60]]])
>>> SPN.shape
(3, 6, 5)
>>> SPN[0].shape
(6, 5)

..実際にはnp.random.uniform(0, 100, (samples, 6, 5))、要素を整数ではなく浮動小数点にしたいので、あなたが望むかもしれないように見えます。まあ、それは同じように機能します。:^)


np.random.uniform0 から 1 までの値の配列を選択し、それらすべてに固定整数を掛けているため、これは と同等ではないことに注意してください。少し変わっているので、実際にはあなたがやろうとしていたことではなかったと思います。それがあなたが本当に望んでいたものかどうかコメントしてください。

于 2013-11-14T17:46:42.527 に答える