Unerwünschte Nebenwirkung bei Permutationsfunktion

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Tuk
User
Beiträge: 2
Registriert: Dienstag 5. April 2022, 12:24

Hallo zusammen,
ich bin gerade dabei eine Programm zu schreiben, dass eine Permutation beinhaltet und mir diese als auch die Permutationsmatrix aus gibt. Ich hoffe das man mir hier auf die Sprünge helfen kann!

Code: Alles auswählen

import numpy as np
M=np.array([[1, 2, 3, 4], [1, 1, 1, 1], [1, 1, 1, 1], [1, 2, 3, 4], [5, 4, 3, 1]])
def Permutation(X):
        id=np.identity(max(np.shape(X)))
        print (M, "M")
        X[:, [3, 0]] = X[:, [0, 3]] 
        print (M, "permutiertes M ?")
        id[:, [3, 0]] = id[:, [0, 3]] 
        return X,  id
print (Permutation(M)[0])
Die Permutation an sich ist auch völlig in Ordnung, leider wird M dauerhaft verändert. Das heißt am Ende wird mit print(M) die permutierte Matrix ausgegeben anstatt die orginale Matrix. Und ich kann mir ganz und gar nicht erklären, wieso dem so ist. Denn an M sollte nichts geändert werden.
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Tuk
User
Beiträge: 2
Registriert: Dienstag 5. April 2022, 12:24

Ah, vielen Dank. Mal sehen, ob mir das weiter hilft.
Antworten