It's simpler in numarray:
i,j = where(z<0.5)
For numeric it's more work:
ind = where(z.flat < 0.5)
i = ind//z.shape[1]
j = ind % z.shape[1]
One could turn this into a function for Numeric (to handle all dimensionalities, etc)
···
On May 17, 2005, at 10:04 AM, Dimitri D'Or wrote:
Hello,
Here under a question that has probably already been asked:
I would like to apply the find() function on a bidimensional array and receive as output the bidimensional indices for the elements matching the condition. This is easy in Matlab but doesn't seem to be possible with Python.
Here is a short example (in Matlab code) of what I would like to have:
>> z=rand(3,3)
z =
0\.9501 0\.4860 0\.4565 0\.2311 0\.8913 0\.0185 0\.6068 0\.7621 0\.8214
>> [i,j]=find(z<0.5)
i =
2 1 1 2
j =
1 2 3 3
A solution for me?
Thank you,
Dimitri D'Or