Python数组无故更改值

2024-09-30 20:20:26 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,我看不出为什么变量“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

我做错什么了?在


Tags: 代码inimportnumpyfornpzerosrange
1条回答
网友
1楼 · 发布于 2024-09-30 20:20:26

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

temp = cleary

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

^{pr2}$

阅读How do I pass a variable by reference?以了解更多关于Python中名称分配基础的信息。在

相关问题 更多 >