变量在函数内没有按预期工作

时间:2018-03-04 18:54:24

标签: python python-2.7 function numpy variables

我正在尝试构建一种数值推导函数。我想构建一个这样做的函数,但是我得到了一些我之前没遇到过的异常行为。我将数组w传递给我的函数并从中定义新变量,比如说w_new。问题是,当我操纵w_new时,我也会对w进行更改。为什么会发生这种情况,我该如何解决?

这是我的最低工作示例:

import numpy as np

eps = 0.05 #doesnt matter
i = 0 #doesnt matter
weight = np.array([1.0, 2.0, 3.0, 4.0], dtype=float)

def func(eps, w, i):

    w_min = w
    w_min[i] = w_min[i] - eps
    print('w_min:', w_min)
    print('w:', w)

    w_max = w
    w_max[i] = w_max[i] + eps
    print('w:', w)
    print('w_max:', w_max)
    print('w_min', w_min)

    return [w_min, w_max, w]

当我在控制台中运行时,我得到了

func(eps, wgt, i)
('w_min:', [0.95, 1.1, 1.2])
('w:', [0.95, 1.1, 1.2])
('w:', [1.0, 1.1, 1.2])
('w_max:', [1.0, 1.1, 1.2])
('w_min', [1.0, 1.1, 1.2])

0 个答案:

没有答案