为什么 python 中的这个一维数组在自相关时会被更改/重新定义?
Why does this 1-D array in python get altered / re-defined while being autocorrelated?
在python中,我有一个一维数组coef定义如下:
coef = np.ones(frame_num-1)
for i in range(1,frame_num):
coef[i-1] = np.corrcoef(data[:,i],data[:,i-1])[0,1]
np.savetxt('serial_corr_results/coef_rest.txt', coef)
现在我想对其进行自相关,为此我在另一个 post:
中使用 deltap 编辑的代码 post
timeseries = (coef)
#mean = np.mean(timeseries)
timeseries -= np.mean(timeseries)
autocorr_f = np.correlate(timeseries, timeseries, mode='full')
temp = autocorr_f[autocorr_f.size/2:]/autocorr_f[autocorr_f.size/2]
自相关工作正常,但是,当我现在想绘制或使用原始系数时,值已更改为时间序列的值 -= np.mean(timeseries).
为什么这里原来的数组coef会变,如何防止变?我需要它在我的脚本中进一步向下进行一些其他操作。
另外,-=这个操作到底是做什么的?我试过 google 那个,但没找到。谢谢!
NumPy 数组是可变的,例如
timeseries = coef # timeseries and coef point to same data
timeseries[:] = 0
会将 timeseries
和 coef
都设置为零。
如果你这样做
timeseries = coef.copy() # timeseries is a copy of coef with its own data
timeseries[:] = 0
相反,coef
将保持不变。
在python中,我有一个一维数组coef定义如下:
coef = np.ones(frame_num-1)
for i in range(1,frame_num):
coef[i-1] = np.corrcoef(data[:,i],data[:,i-1])[0,1]
np.savetxt('serial_corr_results/coef_rest.txt', coef)
现在我想对其进行自相关,为此我在另一个 post:
中使用 deltap 编辑的代码 posttimeseries = (coef)
#mean = np.mean(timeseries)
timeseries -= np.mean(timeseries)
autocorr_f = np.correlate(timeseries, timeseries, mode='full')
temp = autocorr_f[autocorr_f.size/2:]/autocorr_f[autocorr_f.size/2]
自相关工作正常,但是,当我现在想绘制或使用原始系数时,值已更改为时间序列的值 -= np.mean(timeseries).
为什么这里原来的数组coef会变,如何防止变?我需要它在我的脚本中进一步向下进行一些其他操作。
另外,-=这个操作到底是做什么的?我试过 google 那个,但没找到。谢谢!
NumPy 数组是可变的,例如
timeseries = coef # timeseries and coef point to same data
timeseries[:] = 0
会将 timeseries
和 coef
都设置为零。
如果你这样做
timeseries = coef.copy() # timeseries is a copy of coef with its own data
timeseries[:] = 0
相反,coef
将保持不变。