2016-07-01 15 views
-1

Ich mag eine Matrix unter Verwendung der folgende Arrays erzeugen:(psuedo) zufällige erzeugten Matrix

A = [1111,2222,3333] 
B = [20,25,26,27] 
C = [1.5,2.6,3.7,4.5,5.4,6.7,7.2,8.8,9.0,10.0,11.0,12.2] 

Jeder Wert in einem Bedarf einmal auf alle Werte in abzubildenden wird (jedes Element in A wird zu befestigenden alle vier Werte in b) und von dort aus möchte ich die resultierende 12,2 Matrix durch eine Matrix 12,3 werden Array C

Zugabe Es aussehen sollte wie folgt aus:

1111 20 1.5 
1111 25 2.6 
1111 26 3.7  
1111 27 4.5 
2222 20 5.4 
2222 25 6.7 
2222 26 7.2 
2222 27 8.8 
........... 
3333 27 12.2 

Meine erste Idee ist ein Paar zu benutzen for-Schleifen, aber ich bin eine Menge Ärger mit den Werten in der ersten Spalte der Umsetzung

In meinem eigentlichen Code werden die Werte wie folgt vergeben werden:

A = [random.randint(1250,14180) for x in range(len(5))] 
C = [round(random.uniform(1.0,4.0),1) for x in range(len(15))] 

B

wird nicht zufällig
B = [2000,2500,2600,2700] 
+0

gibt, wo es zufällig? wenn es eine feste Nummer in der Eingabe hat? Sie sollten zufällig (https://docs.python.org/2/library/random.html) verwenden – Destrif

+0

Für den ersten Teil können Sie itertools.product verwenden, aber ich sehe nichts zufälliges hier, so dass es schwer ist, sicher zu sein, was ist du brauchst. – polku

+0

Ich gab nur einige Beispiel-Arrays, aber wenn ich sie in meinem Code dort mache, benutze ich random.randint(), um die Werte in A, B, C – user6538795

Antwort

0

können Sie verwenden, um die itertools Paket

import itertools 

A = [1111,2222,3333] 
B = [20,25,26,27] 
C = [1.5,2.6,3.7,4.5,5.4,6.7,7.2,8.8,9.0,10.0,11.0,12.2] 

# create the product of A and B, i.e., [(1111,20), (1111,25), ..., (3333,27)] 
AB = itertools.product(A,B) 

# zip with C 
ABC = itertools.izip(AB, C) 

# flatten sublists, since ABC is an iterator for [((1111,20),1.5), ..., ((3333,27),12,2)] 
ABC = [ list(ab)+[c] for ab,c in ABC ] 

print ABC 

die

[[1111, 20, 1.5], 
[1111, 25, 2.6], 
[1111, 26, 3.7], 
[1111, 27, 4.5], 
[2222, 20, 5.4], 
[2222, 25, 6.7], 
[2222, 26, 7.2], 
[2222, 27, 8.8], 
[3333, 20, 9.0], 
[3333, 25, 10.0], 
[3333, 26, 11.0], 
[3333, 27, 12.2]] 
+0

Das ist sehr nützlich, danke. – user6538795

1

Werfen Sie einen Blick auf:

weights_h = [[random.random() for e in inputs[0]] for e in range(hiden_neurons)] 

Aber wirklich, sollten Sie wahrscheinlich verwenden numpy.

In [9]: numpy.random.random((3, 3)) 
Out[9]: 
array([[ 0.37052381, 0.03463207, 0.10669077], 
     [ 0.05862909, 0.8515325 , 0.79809676], 
     [ 0.43203632, 0.54633635, 0.09076408]]) 

Von:

Simple way to create matrix of random numbers