On Sat, 2013-01-12 at 00:26 +0100, Chao YUE wrote:
Hi,
I don't know how others think about this. Like you point out, one can
use
np.nonzero(a==np.max(a)) as a workaround.
For the second point, in case I have an array:
a = np.arange(24.).reshape(2,3,4)
suppose I want to find the index for maximum value of each 2X3 array
along
the 3rd dimension, what I can think of will be:
index_list = []
for i in range(a.shape[-1]):
data = a[...,i]
index_list.append(np.nonzero(data==np.max(data)))
To keep being close to min/max (and other ufunc based reduce
operations), it would seem consistent to allow something like
np.argmax(array, axis=(1, 2)), which would give a tuple of
arrays as result such that
array[np.argmax(array, axis=(1,2))] == np.max(array, axis=(1,2))
But apart from consistency, I am not sure anyone would get the idea of
giving multiple axes into the function...
In [87]:
index_list
Out[87]:
[(array([1]), array([2])),
(array([1]), array([2])),
(array([1]), array([2])),
(array([1]), array([2]))]
If we want to make the np.argmax function doing the job of this part
of code,
could we add another some kind of boolean keyword argument, for
example,
exclude to the function?
[this is only my thinking, and I am only a beginner, maybe it's
stupid!!!]
np.argmax(a,axis=2,exclude=True) (default value for exclude is False)
it will give the index of maximum value along all other axis except
the axis=2
(which is acutally the 3rd axis)
The output will be:
np.array(index_list).squeeze()
array([[1, 2],
[1, 2],
[1, 2],
[1, 2]])
and one can use a[1,2,i] (i=1,2,3,4) to extract the maximum value.
I doubt this is really useful.. too complicated..
Chao
On Fri, Jan 11, 2013 at 11:00 PM, Nathaniel Smith n...@pobox.com
wrote:
On Thu, Jan 10, 2013 at 9:40 AM, Chao YUE
chaoyue...@gmail.com wrote:
Dear all,
Are we going to consider returning the index of maximum
value in an array
easily
without calling np.argmax and np.unravel_index
consecutively?
This does seem like a good thing to support somehow. What
would a good
interface look like? Something like np.nonzero(a ==
np.max(a))? Should
we support vectorized operation (e.g. argmax of each 2-d
subarray of a
3-d array along some axis)?
-n
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion
--
***
Chao YUE
Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
UMR 1572 CEA-CNRS-UVSQ
Batiment 712 - Pe 119
91191 GIF Sur YVETTE Cedex
Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion