Python数组无缘无故地更改值

Python数组无缘无故地更改值,python,pycharm,Python,Pycharm,在下面的代码中,我看不出为什么变量“cleary”会改变值,但它确实改变了值。我已经多次重新启动pyCharm,但它一直在发生 import numpy as np nPeriods = 48 nGens = 1 cleary = np.zeros((nPeriods,nGens,2)) clearz = np.zeros((nPeriods,nGens)) for ii in range(nPeriods): for jj in range(nGens): temp

在下面的代码中,我看不出为什么变量“cleary”会改变值,但它确实改变了值。我已经多次重新启动pyCharm,但它一直在发生

import numpy as np

nPeriods = 48
nGens = 1
cleary = np.zeros((nPeriods,nGens,2))
clearz = np.zeros((nPeriods,nGens))

for ii in range(nPeriods):
    for jj in range(nGens):
        temp = cleary
        temp[ii,jj,:] = 1

我做错了什么?

这是预期的行为。您传递了名称
cleary
指向
temp
的ndarray对象的引用,当时:

temp = cleary
通过将数组的副本分配给
temp
,可以避免修改
cleary

temp = cleary.copy()

阅读以了解有关Python中名称分配基础的更多信息。

这是预期的行为。查看文档为什么您认为重新启动编辑器会改变Python语言的核心行为?