2013-11-14 21 views
6

Python/numpy’de yeniyim ve rasgele sayı matrislerini içeren bir dizi oluşturmam gerekiyor. PHP geliştiricisi olarak benim için anlamlı olan ancak piton için çalışmıyorRasgele matrislerin Numpy dizisi

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

: Şimdiye kadar var ne

budur. Peki bu matris/dizileri içermek için 3 boyutlu bir dizi nasıl oluşturabilirim? Biz tek adımda yaparım numpy kadar

+0

PHP'de bile bu döngü nasıl üç boyutlu bir dizi oluşturur? SPN nedir? Boş bir liste mi? Eğer öyleyse, php dizin olmadan 'SPN.append (np.random ....)' –

+0

SPN [] deneyin. SPN'yi tanımlamamıştım ama bir dizi olmalı –

cevap

16
Hem np.random.randint

ve np.random.uniform, np.random fonksiyonların çoğu gibi, bir size parametresini kabul:

>>> 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) 
sen isteyebilirsiniz gibi

.. Aslında göründüğü np.random.uniform(0, 100, (samples, 6, 5)), çünkü öğelerin kayan nokta olmasını, tamsayıları değil. Eh, aynı şekilde çalışır. : ^) Sabit bir tamsayı ile hepsini çarpılması sonra 0 ve 1 arasındaki değerler dizisini seçerek çünkü ne yaptığını, np.random.uniform eşdeğer olmadığını


Not. Yapmaya çalıştığınız şeyin aslında olmadığını varsayıyorum, çünkü biraz sıra dışı; Lütfen, 'un gerçekten istediğin şekilde olduğunu söyleyin.

+0

Aklımı oku ve bana güzel bir çözüm sağla, teşekkür ederim. –

İlgili konular