Python变量不应该改变,但它改变了吗?

时间:2017-08-02 06:14:21

标签: python numpy

我对以下代码中的变量有一个奇怪的行为。

为什么w3的输出结尾与w2相同?它在代码中从未改变过,但最终它与w2具有相同的值?

import numpy as np

inpt = np.array([[1]])

w1 = np.random.random((1,1))
w2 = np.random.random((1,1))

w3 = w2

print("First w3: ", w3)

n1 = np.dot(inpt, w1)
n2 = np.dot(n1, w2)

delta = 1 - n2

n1_d = np.dot(delta, w2.T)

w2 += np.dot(n1.T, delta)
w1 += np.dot(inpt.T, n1_d)

print("Second w3: ", w3)

print("Value of w2: ", w2)
  

首先w3:[[0.98377014]]

     

第二个w3:[[1.01105407]]

     

w2的值:[[1.01105407]]

我在这里做错了什么?

1 个答案:

答案 0 :(得分:-1)

w3只是对w2的引用,因此当您更新w2

时,它会反映w2的变化