Is it intended for deserialization to uncouple arrays that share a common base? For example:
>>> import numpy, cPickle as p >>> a = numpy.array([1, 2, 3]) # base array >>> b = a[:] # view one >>> b array([1, 2, 3]) >>> c = a[::-1] # view two >>> c array([3, 2, 1]) >>> b.base is c.base True Arrays in b and c now share a common base, so changing the contents of one affects the other: >>> b[0] = 10 >>> b array([10, 2, 3]) >>> c array([ 3, 2, 10]) After serialization, the two arrays are effectively uncoupled, creating a different situation than before serialization: >>> d, e = p.loads(p.dumps((b, c), -1)) >>> d array([10, 2, 3]) >>> e array([ 3, 2, 10]) >>> d.base is e.base False >>> d[0] = 11 >>> d array([11, 2, 3]) >>> e array([ 3, 2, 10]) Is this behavior intentional, or is it an artifact of the implementation? Can it be relied upon not to change in a future release? _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion