[SciPy-user] += has strange behavior with multidimensional arrays
Erik Volz
erik.volz at gmail.com
Wed Dec 5 19:56:07 EST 2007
Sorry if this issue is already well-known.
It seems that += and perhaps *= operators do not have correct behavior
with multidimensional arrays.
Let's say I want to make a simple matrix symmetric across the diagonal.
from pylab import *
y = ones((10,10)) * arange(1,11)
print y
yy = y
print 'This is incorrect:'
y+=transpose(y); print y
print 'But this still works:'
yy = yy+transpose(yy); print yy
Clearly python is modifying the array element by element, not
simultaneously. You might not consider this a bug, but the behavior is
so unintuitive (and unlike matlab) that it would trip up most people.
More information about the SciPy-User
mailing list