> On 2017-09-25 10:59, Renato Fabbri wrote:

> > > """
> > > In [3]: n.floor(n.linspace(0,5,7), dtype=n.int <http://n.int>)
> > > ------------------------------------------------------------
> > ---------------
> > > TypeError                                 Traceback (most recent call
> > last)
> > > <ipython-input-3-1471f5d738e8> in <module>()
> > > ----> 1 n.floor(n.linspace(0,5,7), dtype=n.int <http://n.int>)
> > >
> > > TypeError: No loop matching the specified signature and casting
> > > was found for ufunc floor
> > >
> > > In [4]: n.__version__
> > > Out[4]: '1.11.0'
> > > """
> > >
> > > Is this the expected behavior?
> >
> > Yes. There is no floor function for integers.
> >
> > The dtype argument specified not only the return type, but the type the
> > calculation is done in as well. floor() only exists, and only makes
> > sense, for floats. (You can use floor(a, dtype='f4') and so on to insist
> > on floats of a different width)
>

+1 for specifying a dtype in np.floor and np.ceil.

Now it is pretty odd that np.floor and np.ceil results in an integer,
except for that it doesn't. it returns a float with all zeros as the
decimals. It would be very useful to be able to specify the dtype at 'int'.
I frequently use floor or ceil to determine the indices of an array, but
now need to convert to integers in addition to floor and ceil.
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to