[Numpy-discussion] (cube max and reduction)
Andre Martel
soucoupevolante at yahoo.com
Thu Apr 26 07:37:53 EDT 2012
________________________________
From: eat <e.antero.tammi at gmail.com>
To: Discussion of Numerical Python <numpy-discussion at scipy.org>
Sent: Sunday, April 22, 2012 5:54 AM
Subject: Re: [Numpy-discussion] (no subject)
Thanks, this was useful. For a large cube, though, I had to loop through the indices
of the maxima:
for i in np.arange(0, ndx.shape[0]):
C_out[i:, ndx == i]= C_in[(i+1):, ndx== i]
Would there be a way to speed this up (no loop) ?
On Fri, Apr 20, 2012 at 9:15 PM, <soucoupevolante at yahoo.com> wrote:
What would be the best way to remove the maximum from a cube and "collapse" the remaining elements along the z-axis ?
>For example, I want to reduce Cube to NewCube:
>
>
>
>>>> Cube
>array([[[ 13, 2, 3, 42],
> [ 5, 100, 7, 8],
> [ 9, 1, 11, 12]],
>
> [[ 25, 4, 15, 1],
> [ 17, 30, 9, 20],
> [ 21, 2, 23, 24]],
>
> [[ 1, 2, 27,
28],
> [ 29, 18, 31, 32],
> [ -1, 3, 35, 4]]])
>
>
>
>NewCube
>
>
>array([[[ 13, 2, 3, 1],
> [ 5, 30, 7, 8],
> [ 9, 1, 11, 12]],
>
> [[ 1, 2, 15, 28],
> [ 17, 18, 9, 20],
> [ -1, 2, 23, 4]]])
>
>
>I tried with argmax() and then roll() and delete() but these
>all work on 1-D arrays only. Thanks.
>
Perhaps it would be more straightforward to process via 2D-arrays, like:
In []: C
Out[]:
array([[[ 13, 2, 3, 42],
[ 5, 100, 7, 8],
[ 9, 1, 11, 12]],
[[ 25, 4, 15, 1],
[ 17, 30, 9, 20],
[ 21, 2, 23, 24]],
[[ 1, 2, 27, 28],
[ 29, 18, 31, 32],
[ -1, 3, 35, 4]]])
In []: C_in= C.reshape(3, -1).copy()
In []: ndx= C_in.argmax(0)
In []: C_out= C_in[:2, :]
In []: C_out[:, ndx== 0]= C_in[1:, ndx== 0]
In []: C_out[1, ndx== 1]= C_in[2, ndx== 1]
In []: C_out.reshape(2, 3, 4)
Out[]:
array([[[13, 2, 3, 1],
[ 5, 30, 7, 8],
[ 9, 1, 11, 12]],
[[ 1, 2, 15, 28],
[17, 18, 9, 20],
[-1, 2, 23, 4]]])
My 2 cents,
-eat
>_______________________________________________
>NumPy-Discussion mailing list
>NumPy-Discussion at scipy.org
>http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion at scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120426/9ee34aad/attachment.html>
More information about the NumPy-Discussion
mailing list