[Numpy-discussion] hstack(arr_Int32, arr_float32) fails because of casting rules

Sebastian Haase haase at msg.ucsf.edu
Thu Aug 24 19:47:08 CDT 2006

On Thursday 24 August 2006 17:28, Travis Oliphant wrote:
> Sebastian Haase wrote:
> >Hi,
> >I get
> >TypeError: array cannot be safely cast to required type
> >
> >when calling hstack()  ( which calls  concatenate() )
> >on two arrays being a int32 and a float32 respectively.
> >
> >I understand now that a int32 cannot be safely converted into a float32
> >but why does  concatenate  not automatically
> >up(?) cast to float64  ??
> Basically, NumPy is following Numeric's behavior of raising an error in
> this case of unsafe casting in concatenate.  For functions that are not
> universal-function objects, mixed-type behavior works basically just
> like Numeric did (using the ordering of the types to determine which one
> to choose as the output).
> It could be argued that the ufunc-rules should be followed instead.
> -Travis
Are you saying the  ufunc-rules  would convert "int32-float32" to float64  and 
hence make my code "just work" !?

And why are there two sets of rules ?
Are the Numeric rules used at many places ?

Sebastian Haase

More information about the Numpy-discussion mailing list