2016-09-29 16 views
0

次のコードでは、変数「cleary」が値を変更する理由はわかりませんが、そうしています。私はpyCharmを何度も再起動しましたが、それは起こり続けます。Python配列が理由なしに値を変更する

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 

私は間違っていますか?

+0

これは予期した動作です。ドキュメントをチェックしてください –

+0

エディタを再起動するとPython言語のコア動作が変わるのはなぜですか? – SethMMorton

答えて

1

これは予期された動作です。

temp = cleary 

をあなたがtempに配列のコピーを割り当てることによってclearyを修正避けることができます:あなたがやったときに名前clearytempに指しているオブジェクトndarrayの参照が渡さ

temp = cleary.copy() 

読むにはHow do I pass a variable by reference?を参照して、Pythonの名前割り当ての基礎について学んでください。

関連する問題