[Numpy-discussion] Bus Error with string in ndarray with named fields
Per B. Sederberg
persed@princeton....
Fri Apr 20 08:38:45 CDT 2007
Hi Folks:
I'm getting a very strange bus error in the recent versions of numpy
(almost current svn). Here's how you can (hopefully) replicate it:
On my MacBook:
Python 2.4.3 (#1, Apr 7 2006, 10:54:33)
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as N
>>> N.version.version
'1.0.2.dev3569'
>>> fields = [('x',(N.str,40))]
>>> dat = N.zeros(1,fields)
>>> dat
Bus error
On my linux cluster:
Python 2.4.3 (#1, May 8 2006, 11:36:25)
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-49)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as N
>>> N.version.version
'1.0.2.dev3567'
>>> fields = [('x',(N.str,40))]
>>> dat = N.zeros(1,fields)
>>> dat
Segmentation fault
But it works on my linux desktop with an older numpy:
Python 2.4.4c1 (#2, Oct 11 2006, 20:00:03)
[GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as N
>>> N.version.version
'1.0rc1'
>>> fields = [('x',(N.str,40))]
>>> dat = N.zeros(1,fields)
>>> dat
array([('',)],
dtype=[('x', '|S40')])
>>>
Does anyone have any clue as to how to deal with this? Is there a
better way to create an ndarray with named fields (recarray)? My real
code has a number of fields of various types, but I was able to narrow
it down to anytime I use a string type. For example, this works on
the machines where using a string fails:
>>> import numpy as N
>>> fields = [('x',N.bool),('y',N.int32)]
>>> dat = N.zeros(1,fields)
>>> dat
array([(False, 0)],
dtype=[('x', '|b1'), ('y', '<i4')])
>>>
Thanks for any help,
Per
More information about the Numpy-discussion
mailing list