【问题标题】:Python array changes values without reason [duplicate]Python数组无故更改值[重复]
【发布时间】:2016-09-29 17:33:13
【问题描述】:

在下面的代码中,我没有理由看到为什么变量“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

我做错了什么?

【问题讨论】:

标签: python pycharm


【解决方案1】:

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

temp = cleary

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

temp = cleary.copy()

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 2014-05-25
    • 1970-01-01
    • 2021-10-17
    • 2016-03-13
    • 1970-01-01
    • 2019-12-26
    • 2019-02-16
    相关资源
    最近更新 更多