On Thu, 2021-07-01 at 00:39 -0700, Stefan van der Walt wrote:
Hi Sebastian,
On Wed, Jun 30, 2021, at 18:23, Sebastian Berg wrote:
The PR https://github.com/numpy/numpy/pull/19211 proposes to extend argmin and argmax with a `keepdims=False` keyword-only argument.
This seems consistent with existing APIs, so I'm not concerned.
For those wondering, `keepdims` preserves the number of dimensions of the original array in a reduction operation like `sum`:
In [1]: X = np.random.random((10, 15))
In [2]: np.sum(X).shape Out[2]: ()
In [3]: np.sum(X, keepdims=True).shape Out[3]: (1, 1)
This is sometimes useful for broadcasting.
The PR also proposes to add:
* `PyArray_ArgMinWithKeepdims` * `PyArray_ArgMaxWithKeepdims`
I am curious whether this is our general pattern for adding keyword argument functionality to functions in the C-API. It seems a bit excessive!
True, I am now tending a bit towards delaying this until someone actually asks for it... In most use-cases just using the Python API is likely only a small overhead anyway if done right. I do not think we have a pattern. We do have some functions with the pattern of `With...And...` to allow signatures of different complexity. But very few of this type of python additions ever made it into the C- API. For `Reshape`, `order=` was added by introducing `NewShape`. I have some hope that very long-term, HPy might solve this for us... Cheers, Sebastian
Stéfan _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion