On Sat, Mar 7, 2015 at 2:02 PM, Dinesh Vadhia <dineshbvad...@hotmail.com>
wrote:

>   This was originally posted on SO (
> https://stackoverflow.com/questions/28853740/numpy-array-casting-ruled-not-safe)
> and it was suggested it is probably a bug in numpy.take.
>
> Python 2.7.8 |Anaconda 2.1.0 (32-bit)| (default, Jul  2 2014, 15:13:35)
> [MSC v.1500 32 bit (Intel)] on win32
> Type "copyright", "credits" or "license()" for more information.
>
> >>> import numpy
> >>> numpy.__version__
> '1.9.2'
>
> >>> a = numpy.array([9, 7, 5, 4, 3, 1], dtype=numpy.uint32)
> >>> b = numpy.array([1, 3], dtype=numpy.uint32)
> >>> c = a.take(b)
>
> Traceback (most recent call last):
>   File "<pyshell#5>", line 1, in <module>
>     c = a.take(b)
> TypeError: Cannot cast array data from dtype('uint32') to dtype('int32')
> according to the rule 'safe'
>

This actually looks correct for 32-bit windows. Numpy indexes with a signed
type big enough to hold a pointer to void, which in this case is an int32,
and the uint32 cannot be safely cast to that type.

Chuck
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to