ich eine einfache Funktion, die die Diagonale eines Arrays abzulaufen soll, und schalten Sie alle Werte auf 0.Stopp Python Funktionen Eingänge Überschreibung
def diagonal_zeros(dataset):
zero = dataset[:]
length = len(zero)
for i in range(length):
zero[i, i] = 0
return zero
Wenn ich diese Funktion auf einem Array laufen, es gibt das neue, korrekte 'Null' Array, aber es geht auch zurück und überschreibt den ursprünglichen 'Datensatz'. Ich hatte gedacht, dass die Linie zero = dataset[:]
dies verhindert hätte.
Ich weiß nicht, jedoch erhalten das gleiche Verhalten mit dieser Funktion:
def seperate_conditions(dataset, first, last):
dataset = dataset[first:last, :]
return dataset
, die die erste Datenmenge unverändert lässt. Ich habe StackOverflow Antworten auf verwandte Fragen gelesen, aber ich kann nicht für das Leben von mir das herausfinden. Ich arbeite an einer wissenschaftlichen Analyse-Pipeline, so dass ich wirklich in der Lage sein werde, bei jedem Schritt auf die Matrizen zurückzugreifen.
Dank
Sie verwenden 'numpy', nehme ich an. 'numpy' slicing gibt eine Ansicht zurück, keine Kopie. –