为什么 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

会将 timeseriescoef 都设置为零。

如果你这样做

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

相反,coef 将保持不变。