[Numpy-discussion] Problems with Numexpr and discontiguous arrays

Sebastian Haase haase at msg.ucsf.edu
Wed Oct 4 12:47:52 EDT 2006


Quick question hopefully somewhat related to this:
Does numexpr fully support float32 arrays ?
-Sebastian


On Wednesday 04 October 2006 09:32, Tim Hochberg wrote:
> Ivan Vilata i Balaguer wrote:
> > It seemed that discontiguous arrays worked OK in Numexpr since r1977 or
> > so, but I have come across some alignment or striding problems which can
> > be seen with the following code::
> >
> >     import numpy
> >     import numexpr
> >
> >     array_length = 10
> >     array_descr = [('c1', numpy.int32), ('c2', numpy.uint16)]
> >
> >     array = numpy.empty((array_length,), dtype=array_descr)
> >     for i in xrange(array_length):
> >         array['c1'][i] = i
> >         array['c2'][i] = 0xaaaa
> >
> >     print numexpr.evaluate('c1', {'c1': array['c1']})
> >     print numexpr.evaluate('c1', {'c1': array['c1'].copy()})
> >
> > Im my computer, Pentium IV with NumPy 1.0rc1 and Numexpr r2239
> > (unmodified) this gives the following result::
> >
> >     [      0      109226 -1431699456           2      240298 -1431699456
> >            4      371370           8      633514]
> >     [0 1 2 3 4 5 6 7 8 9]
> >
> > The test works right when ``evaluate()`` is used with 'c2' instead of
> > 'c1', and also when 'c2' also measures 32 bits and fields are aligned.
> > Maybe the ``memsteps`` value is not getting used somewhere.  Any ideas
> > on this?
>
> I suspect that there are some assumptions that the element separation
> is an integral multiple of the element size. I certainly didn't have
> record arrays in mind when I was working on the striding stuff, so it
> wouldn't surprise me. This should be fixed: preferably to do the right
> thing and at a minimum to cleanly raise an exception rather than
> spitting out garbage. I don't know that I'll have time to mess with it
> soon though.
>
> -tim
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your opinions on IT & business topics through brief surveys -- and earn
> cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list