Frage zum Verhalten von Arrays
Verfasst: Mittwoch 13. Juli 2011, 15:42
Hi,
ich bin heute über etwas gestolpert dass ich nicht ganz verstehe.
Ich lese einen Datensatz von 26 Zeilen mit je 300000 Einträgen ein.
Auf diesen möchte ich random noise legen.
Code in etwa:
Wenn ich mir nun beides plotte (also data_all und data_noise) sind beide identisch.
Habe ich aber statt
data_noise = data_all
data_noise = data_all.copy()
im code stehen dann bleibt data_all ohne noise erhalten.
Wieso ist bei variante 1 data_all mit data_noise verbunden (weiß jetzt nicht wie ich dass Ausdrücken soll)?
Ich dachte so etwas kommt bei python nicht vor.
Gruß
PS: benutze python 2.7.1
Beispiele zum Verdeutlichen (ihr habt ja nicht meine Daten):
Var1
Var2
ich bin heute über etwas gestolpert dass ich nicht ganz verstehe.
Ich lese einen Datensatz von 26 Zeilen mit je 300000 Einträgen ein.
Auf diesen möchte ich random noise legen.
Code in etwa:
Code: Alles auswählen
data_all = np.loadtxt(path1+"data_all.dat")
data_noise = data_all
for i in range(26):
data_noise[i] += np.random.normal(0,1e12,data_noise[0].size)
Habe ich aber statt
data_noise = data_all
data_noise = data_all.copy()
im code stehen dann bleibt data_all ohne noise erhalten.
Wieso ist bei variante 1 data_all mit data_noise verbunden (weiß jetzt nicht wie ich dass Ausdrücken soll)?
Ich dachte so etwas kommt bei python nicht vor.
Gruß
PS: benutze python 2.7.1
Beispiele zum Verdeutlichen (ihr habt ja nicht meine Daten):
Var1
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as mpl
data_all = np.zeros(100)
data_noise = data_all
data_noise += np.random.normal(0,1e12,data_noise.size)
mpl.plot(data_all,'r-',label='Original Data')
mpl.plot(data_noise,'b-',label='With Noise')
mpl.legend()
mpl.show()
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as mpl
data_all = np.zeros(100)
data_noise = data_all.copy()
data_noise += np.random.normal(0,1e12,data_noise.size)
mpl.plot(data_all,'r-',label='Original Data')
mpl.plot(data_noise,'b-',label='With Noise')
mpl.legend()
mpl.show()