Have any of the numpy devs weighed in on this?  If an efficient version of
this were available in numpy there is a lot of pandas code I would enjoy
ripping out.

On Sun, Jan 2, 2022 at 11:16 AM Joseph Fox-Rabinovitz <
jfoxrabinov...@gmail.com> wrote:

> Is there a guide on how to pacakage non-ufunc functions with multiple
> loops? Something like sort? It looks like there is no way of adding
> additional arguments to a ufunc as of yet.
>
> On a related note, would it be more useful to have a function that returns
> the number of bits required to store a number, or -1 if it has a fractional
> part? Then you could just test something like ``(k := integer_bits(a)) < 64
> & k > 0``.
>
> - Joe
>
>
> On Sat, Jan 1, 2022 at 5:55 AM Joseph Fox-Rabinovitz <
> jfoxrabinov...@gmail.com> wrote:
>
>> Stefano,
>>
>> That is an excellent point. Just to make sure I understand, would an
>> interface like `is_integer(a, int_dtype=None)` be satisfactory? That way,
>> there are no bounds by default (call it python integer bounds), but the
>> user can specify a limited type at will. An alternative would be something
>> like `is_integer(a, bits=None, unsigned=False)`. This would have the
>> advantage of testing against hypothetical types, which might be useful
>> sometimes, or just annoying. I could always allow a two-element tuple in as
>> an argument to the first version.
>>
>> While I completely agree with the idea behind adding this test, one big
>> question remains: can I add arbirary arguments to a ufunc?
>>
>> - Joe
>>
>> On Sat, Jan 1, 2022 at 5:41 AM Stefano Miccoli <stefano.micc...@polimi.it>
>> wrote:
>>
>>> I would rather suggest .is_integer(integer_dtype) signature because
>>> knowing that 1e300 is an integer is not very useful in the numpy world,
>>> since this integer number is not representable as a numpy.integer dtype.
>>>
>>> Note that in python
>>>
>>> assert not f.is_integer() or int(f) == f
>>>
>>> never fails because integers have unlimited precision but this does
>>> would not map into
>>>
>>> assert ( ~f_arr.is_integer() | (np.int64(f_arr) == f.arr) ).all()
>>>
>>> because of possible OverflowErrors.
>>>
>>> Stefano
>>>
>>> On 31 Dec 2021, at 04:46, numpy-discussion-requ...@python.org wrote:
>>>
>>> Is adding arbitrary optional parameters a thing with ufuncs? I could
>>> easily add upper and lower bounds checks.
>>>
>>> On Thu, Dec 30, 2021, 20:56 Brock Mendel <jbrockmen...@gmail.com> wrote:
>>>
>>>> At least some of the commenters on that StackOverflow page need a
>>>> slightly stronger check: not only is_integer(x), but also
>>>> "np.iinfo(dtype).min <= x <= np.info(dtype).max" for some particular
>>>> dtype.  i.e. "Can I losslessly set these values into the array I already
>>>> have?"
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> NumPy-Discussion mailing list -- numpy-discussion@python.org
>>> To unsubscribe send an email to numpy-discussion-le...@python.org
>>> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
>>> Member address: jfoxrabinov...@gmail.com
>>>
>> _______________________________________________
> NumPy-Discussion mailing list -- numpy-discussion@python.org
> To unsubscribe send an email to numpy-discussion-le...@python.org
> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> Member address: jbrockmen...@gmail.com
>
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to