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.