2016-06-26 6 views
1

Ich versuche, Spalten aus 2 Matrizen zu wechseln, aber meine Aufgabe scheint es nicht zu tun.Ersetzen Sie eine Spalte in einer numpy Matrix

crom1 = crossover_list[0][0][:,j] 
print('c1', crom1) 
crom2 = crossover_list[1][0][:,j] 
print('c2', crom2) 

crossover_list[0][0][:,j] = crom2 

print(crossover_list[1][0][:,j]) 
crossover_list[1][0][:,j] = crom1 
print(crossover_list[1][0][:,j]) 

Und das ist, was herauskommt: enter image description here

Irgendwelche Vorschläge?

LE: Ich habe auch versucht die folgenden, ohne Erfolg:

aux = crossover_list[0][0][:,j] 
crossover_list[0][0][:,j] = crossover_list[1][0][:,j] 
crossover_list[1][0][:,j] = aux 

Antwort

1
aux = numpy.copy(crossover_list[0][0][:,j]) 
crossover_list[0][0][:,j] = crossover_list[1][0][:,j] 
crossover_list[1][0][:,j] = aux 

Scheint, wie dies funktioniert (basierend auf Swapping columns in a numpy array?)

+0

Ihr Code und Frage wäre einfacher, wenn Sie verwendet ' x = crossover_list [0] [0] 'und' y = crossover_list [1] [0] ', und stellten sicher, dass sie beide" ndarray "waren (im Gegensatz zu Listen oder Listen von Listen). – hpaulj

+0

Leider glaube ich nicht, dass ich das tun kann, da ich Spalten zwischen 2 Matrizen wechsele, aber nicht alle Spalten. –