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) If you have some floats, and you want to get their floor as integers, you'll have to cast. In that case, in actual fact, there is little reason to use floor at all: In [2]: np.arange(1.9, 11.) Out[2]: array([ 1.9, 2.9, 3.9, 4.9, 5.9, 6.9, 7.9, 8.9, 9.9, 10.9]) In [3]: np.arange(1.9, 11.).astype('i8') Out[3]: array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) > > I am doing: >>>> myints = n.array(n.floor(myarray), dtype=n.int <http://n.int>) > to get the integers. > > tx. > R. > > > -- > Renato Fabbri > GNU/Linux User #479299 > labmacambira.sourceforge.net <http://labmacambira.sourceforge.net> > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -- Thomas Jollans _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion