New submission from mikefc <[email protected]>:
If a slice is taken out of a numpypy ndarray, then the array_interface['data']
value is
not updated to point to the start of the actual memory of the slice. Instead,
it still
points to the start of the memory of the parent array.
Code below illustrates that cpython/numpy update the array interface, whereas
pypy/numpypy does not.
#---------------------------------------------------
# code
#---------------------------------------------------
try:
import numpypy as np
except:
import numpy as np
zz = np.array(range(9))
print zz.__array_interface__['data']
print zz[0:3].__array_interface__['data']
print zz[3:5].__array_interface__['data']
#---------------------------------------------------
# cpython 2.7.4
#---------------------------------------------------
(140287077459744, False) # start of zz array
(140287077459744, False) # correctly pointing to start of zz memory
(140287077459768, False) # pointing to start of third element of zz
#---------------------------------------------------
# latest nightly OSX
#---------------------------------------------------
(4340424752, False)
(4340424752, False)
(4340424752, False) # Still pointing to start of zz array memory!
----------
messages: 5925
nosy: mikefc, pypy-issue
priority: bug
status: unread
title: numpypy array slicing doesn't update data memory address
________________________________________
PyPy bug tracker <[email protected]>
<https://bugs.pypy.org/issue1537>
________________________________________
_______________________________________________
pypy-issue mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-issue