为什么python中的这个1-D数组在自相关时会被改变/重新定义?

时间:2016-05-25 07:40:40

标签: python arrays numpy correlation redefinition

在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)。

为什么原始数组系数会在此处更改,如何防止其被更改?我需要在我的脚本中进一步了解其他一些操作。

此外,操作究竟是什么 - =做什么?我曾试图谷歌,但还没有找到它。谢谢!

1 个答案:

答案 0 :(得分:0)

NumPy数组是可变的,例如

timeseries = coef           # timeseries and coef point to same data
timeseries[:] = 0

会将timeseriescoef都设置为零。

如果你这样做

timeseries = coef.copy()    # timeseries is a copy of coef with its own data
timeseries[:] = 0

相反,coef将保持不变。