在python中,我有一个1-D数组 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)
现在我想对它进行自相关,为此我在另一篇文章中使用deltap发布的代码:
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]
自相关工作正常,但是,当我想现在绘制或使用原始coef时,值已更改为timeseries - = np.mean(timeseries)。
为什么原始数组系数会在此处更改,如何防止其被更改?我需要在我的脚本中进一步了解其他一些操作。
此外,操作究竟是什么 - =做什么?我曾试图谷歌,但还没有找到它。谢谢!
答案 0 :(得分:0)
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
将保持不变。