Мне нужно выполнить вычисления для начального массива 3x3 (скажем, «x»), который мне понадобится позже для дальнейших вычислений.Итак, у меня есть другая переменная ('y'), чтобы сделать копию 'x' (y = x), выполнить вычисления для 'y', а затем использовать x для более поздних целей.Но почему-то адрес 'y' меняется на 'x', даже если я назначаю его изначально отличным от 'x'
import numpy as np
x = np.random.rand(3,3)
y = np.random.rand(3,3)
print 'y',id(y)
y = x
y[1][1] = -y[1][1]
print x[1][1] + y[1][1] #This needs to be 0.
print 'x',id(x)
print 'y',id(y)
В приведенном выше коде мне нужна строка 9 ('x [1] [1]+ y [1] [1] '), чтобы вывести 0, но получим 2 раза -x [1] [1].В чем причина этой проблемы, и если бы вы могли предложить какой-то метод, чтобы избежать этого?