[Numpy-discussion] dtype '|S0' not understood

Will Lee lee.will at gmail.com
Wed Oct 3 13:58:04 EDT 2012

This seems to be a old problem but I've recently hit with this in a very
random way (I'm using numpy 1.6.1).  There seems to be a ticket (1239)
but it seems the issue is unscheduled.   Can somebody tell me if this is

In particular, it makes for a very unstable behavior when you try to
reference something from a string array and pickle it across the wire.  For

In [1]: import numpy
In [2]: a = numpy.array(['a', '', 'b'])
In [3]: import cPickle
In [4]: s = cPickle.dumps(a[1])
In [5]: cPickle.loads(s)
TypeError                                 Traceback (most recent call last)
/auto/cnvtvws/wlee/fstrat/src/<ipython-input-5-555fae2bd4f5> in <module>()
----> 1 cPickle.loads(s)
TypeError: ('data type not understood', <type 'numpy.dtype'>, ('S0', 0, 1))

Note that if you reference a[0] and a[2], it would work, so you're in the
case where sometimes it'd work but sometimes it won't.  Checking for this
case in the code and work around it would really be a pain.


On Thu, Sep 24, 2009 at 7:03 PM, David Warde-Farley <dwf at cs.toronto.edu>wrote:

> On 23-Sep-09, at 7:55 PM, David Warde-Farley wrote:
> > It seems that either dtype(str) should do something more sensible than
> > zero-length string, or it should be possible to create it with
> > dtype('|
> > S0').  Which should it be?
> Since there wasn't any response I went ahead and fixed it by making
> str and unicode dtypes allow a size of 0 when constructed with
> protocol type codes. Either S0 and U0 should be constructable with
> typecodes or they shouldn't be allowed at all; I opted for the latter
> since a) it was simple and b) I don't know what a sensible default for
> dtype(str) would be (length 1? length 10?).
> Patch is at:
>         http://projects.scipy.org/numpy/ticket/1239
> Review away!
> David
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20121003/6efa302d/attachment.html>

More information about the NumPy-Discussion mailing list