[Numpy-discussion] Yet another problem in CVS numarray
Francesc Altet
faltet at carabos.com
Thu Nov 10 09:50:44 EST 2005
Ups, I've made a cvs update and not luck yet:
>>> import numarray; numarray.__version__
'1.4.2'
>>> import Numeric; Numeric.__version__
'24.1'
>>> num=Numeric.array([1,2,3,4])
>>> numarray.array(num)
array([1, 2, 3, 4])
>>> num2=num[::2]
>>> numarray.array(num2)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/site-packages/numarray/numarraycore.py", line 380,
in array
a = a.astype(type)
File "/usr/lib/python2.4/site-packages/numarray/numarraycore.py", line 867,
in astype
return self.copy()
File "/usr/lib/python2.4/site-packages/numarray/numarraycore.py", line 927,
in copy
c = _gen.NDArray.copy(self)
File "/usr/lib/python2.4/site-packages/numarray/generic.py", line 724, in
copy
arr._itemsize)
numarray.libnumarray.error: copy4bytes: access beyond buffer. offset=11
buffersize=8
I've made a rm -rf of old numarray extension, and rebuild everything
from scratch.
Regards,
A Dijous 10 Novembre 2005 17:47, vàreu escriure:
> Francesc Altet wrote:
> >El dv 04 de 11 del 2005 a les 15:35 -0500, en/na Todd Miller va
> >
> >escriure:
> >>This turned out to be a problem with the way numarray handles Numeric's
> >>multi-segment buffer protocol. I worked around this by implementing
> >>David Cooke's __array_struct__ array interface for numarray.
> >
> >Did you commit the changes in CVS? I'm getting the same problems with
> >
> >the current CVS version:
> >>>>Numeric.__version__
> >
> >'24.1'
> >
> >>>>import numarray
> >>>>numarray.__version__
> >
> >'1.4.2'
> >
> >>>>num=Numeric.array([1,2,3,4])
> >>>>numarray.array(num)
> >
> >array([1, 2, 3, 4])
> >
> >>>>num2=num[::2]
> >>>>numarray.array(num2)
> >
> >Traceback (most recent call last):
> > File "<stdin>", line 1, in ?
> > File "/usr/lib/python2.4/site-packages/numarray/numarraycore.py", line
> >380, in array
> > a = a.astype(type)
> > File "/usr/lib/python2.4/site-packages/numarray/numarraycore.py", line
> >867, in astype
> > return self.copy()
> > File "/usr/lib/python2.4/site-packages/numarray/numarraycore.py", line
> >927, in copy
> > c = _gen.NDArray.copy(self)
> > File "/usr/lib/python2.4/site-packages/numarray/generic.py", line 724,
> >in copy
> > arr._itemsize)
> >numarray.libnumarray.error: copy4bytes: access beyond buffer. offset=11
> >buffersize=8
>
> This turned out to be a bug in numarray buffer size determination...
> striding wasn't accounted for so the buffer appeared to be too small.
> It's fixed now in CVS. There's still a backward compatibility problem
> for old Numerics which don't implement __array_struct__ and get
> multi-segment buffers through __array_data__.
>
> Regards,
> Todd
--
>0,0< Francesc Altet http://www.carabos.com/
V V Cárabos Coop. V. Enjoy Data
"-"
More information about the NumPy-Discussion
mailing list