2013-11-14 341 views
6

我是新來的python/numpy,我需要創建一個包含隨機數矩陣的數組。隨機矩陣的Numpy陣列

到目前爲止,我已經得到了這是什麼:

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

這道理,我作爲PHP開發人員,但不工作的蟒蛇。那麼如何創建一個3維數組來包含這個矩陣/數組?

+0

即使在PHP中,這個循環如何創建一個三維數組?什麼是'SPN'?一個空的列表?如果是這樣,請嘗試使用'SPN.append(np.random ....)' –

+0

SPN [],而不使用php上的索引。我沒有定義SPN,但它應該是一個數組 –

回答

16

兩個np.random.randintnp.random.uniform,最喜歡的np.random功能,接受size參數,所以在numpy,我們會在一個步驟做到這一點:

>>> 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.uniform,因爲你選擇0和1之間,然後值的數組由一個固定的整數相乘所有的人。我假設這實際上並不是你想要做的,因爲這有點不尋常;請評論如果你真正想要的。

+0

您閱讀我的想法併爲我提供一個很好的解決方案,謝謝。 –