2017-03-28 1 views
1

Angenommen, ich habe folgendes ArrayAccess-Elemente aus verschachtelten Array in Python

test=np.asarray([ 
    [[ 0.26139668, 0.271985 , 0.89647514, 0.10352486], 
    [ 0.30488212, 0.31384717, 0.84089744, 0.15910256], 
    [ 0.32112577, 0.32958562, 0.79216727, 0.20783273]], 
    [[ 0.6017121 , 0.60530397, 0.49432092, 0.50567908], 
    [ 0.61610247, 0.61954059, 0.49649699, 0.50350301], 
    [ 0.63149809, 0.63477652, 0.49945702, 0.50054298]], 
    [[ 0.6017121 , 0.60530397, 0.49432092, 0.50567908], 
    [ 0.61610247, 0.61954059, 0.49649699, 0.50350301], 
    [ 0.63149809, 0.63477652, 0.49945702, 0.50054298]], 
    [[ 0.6017121 , 0.60530397, 0.49432092, 0.50567908], 
    [ 0.61610247, 0.61954059, 0.49649699, 0.50350301], 
    [ 0.63149809, 0.63477652, 0.49945702, 0.50054298]]]) 

nun das Ergebnis ich suche sind in der ersten Spalte jedes Elements aus test. Also im Grunde brauche ich test[0][:,0] und test[1][:,0] ... und schließlich test[3][:,0].

Ich bin sicher, dass dies ohne eine for-Schleife erfolgen kann, oder nicht?

Da Notation [:] alle Elemente von Anfang bis Ende bedeuten soll, habe ich sogar versucht test[:][:,0]. Das hat nicht funktioniert. test[:,0][:,0] war auch nicht besser.

Also, was wäre die Alternative zu einer for-Schleife?


sollte das Ergebnis sein:

[0.26139668, 0.30488212, 0.32112577, 0.6017121, 0.61610247, 0.63149809, 
0.6017121, 0.61610247, 0.63149809,0.6017121, 0.61610247, 0.63149809] 

Oder etwas ähnlich. (Ich brauche nur die Nummern aus dem ganzen Array).

+1

zeigen, wie sollte Schauen Sie sich das Endergebnis – RomanPerekhrest

+0

@RomanPerekhrest OP bearbeitet – skrat

Antwort

2

Sie haben ein 3D-Array so nur die 0 zur dritten Achse passieren:

In [9]: test[:, :, 0] 
Out[9]: 
array([[ 0.26139668, 0.30488212, 0.32112577], 
     [ 0.6017121 , 0.61610247, 0.63149809], 
     [ 0.6017121 , 0.61610247, 0.63149809], 
     [ 0.6017121 , 0.61610247, 0.63149809]]) 

Wenn Sie sie alle in einem Array möchten, können Sie ravel nur die Scheibe:

In [11]: test[:, :, 0].ravel() 
Out[11]: 
array([ 0.26139668, 0.30488212, 0.32112577, 0.6017121 , 0.61610247, 
     0.63149809, 0.6017121 , 0.61610247, 0.63149809, 0.6017121 , 
     0.61610247, 0.63149809]) 
Verwandte Themen