Be careful with pass by reference and pass by value in Python


In [13]:
a = 1
b = a
b +=  1
print 'a = ', a
print 'b = ', b


a =  1
b =  2

When you assign a variable to another array in numpy, the new numpy arrays uses the same memory reference


In [14]:
import numpy as np
A = np.array(1)
B = A
B += 1
print 'A = ', A
print 'B = ', B


A =  2
B =  2

To initiate a new instance of an numpy array in memory use .copy()


In [15]:
import numpy as np
A = np.array(1)
B = A.copy()
B += 1
print 'A = ', A
print 'B = ', B


A =  1
B =  2

In [ ]: