Python里直接赋值一个对象的时候实际上不是赋值,而是引用,所以当多个变量同时赋值同一个对象的时候,后续改变某个变量的时候,会使这个被赋值的对象也被改变,导致别的变量也发生改变。解决的方法就是多个变量深拷贝或者浅拷贝这个对象。下面举个例子。
zero = numpy.zeros((order, order))
A = zero
B = zero
A[0, 0] = 1
print(A)
print(B)
print(zero)
你会发现改变A后,B和zero也跟着变了,这个在某些情况下是必须避免的。