After a taking a closer look at the `np.choose` docs I think we should change `choices: npt.ArrayLike` into `choices: Sequence[npt.ArrayLike]`.
This would resolve the issue, but it’d also mean that directly passing an array will be prohibited (as far as type checkers are concerned). The docs do mention that the outermost container should be a list or tuple anyway, so I’m not convinced that this new typing restriction would be a huge loss. Regards, Bas From: NumPy-Discussion <numpy-discussion-bounces+bas.vanbeek=hotmail....@python.org> On Behalf Of Kevin Sheppard Sent: 18 April 2021 20:08 To: Discussion of Numerical Python <numpy-discussion@python.org> Subject: Re: [Numpy-discussion] two questions about `choose` Oh. I answered thinking about choice and not choose. Please ignore both parts. On Sun, Apr 18, 2021, 17:56 Robert Kern <robert.k...@gmail.com<mailto:robert.k...@gmail.com>> wrote: On Sat, Apr 17, 2021 at 4:28 PM Kevin Sheppard <kevin.k.shepp...@gmail.com<mailto:kevin.k.shepp...@gmail.com>> wrote: 1. I suppose it only uses the (Native int or int64) dtype since each one would need a code path to run quickly. 2. I would describe this a a bug. I think sequences are converted to arrays and in this case the conversion is not returning a 2 element object array but expanding and then concatenation. No, it's broadcasting the two to a common shape, as documented. https://numpy.org/doc/stable/reference/generated/numpy.choose.html E.g., a = a = (0,1,1,0,0,0,1,1) #binary array np.choose(a, (0,range(8)) #array([0, 1, 2, 0, 0, 0, 6, 7]) This is equivalent to `np.choose(a, (np.zeros(8, dtype=int), range(8)))` -- Robert Kern _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org<mailto:NumPy-Discussion@python.org> https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion