Following up to David Morrissey's answer on 'How to clone a list in python?' I was running some performance tests and hit unexpected behavior when working w/ numpy arrays. I know that a numpy array can/ should be cloned w/
clone = numpy.array(original)
or
clone = numpy.copy(original)
but have incorrectly assumed that slicing would do the trick too. However:
In [11]: original = numpy.arange(4)
In [12]: original
Out[12]: array([0, 1, 2, 3])
In [13]: clone = original[:]
In [14]: clone
Out[14]: array([0, 1, 2, 3])
In [15]: clone[0] = 1
In [16]: clone
Out[16]: array([1, 1, 2, 3])
In [17]: original
Out[17]: array([1, 1, 2, 3])
Is there a good reason for this slight inconsistency or should I file a bug?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…