[Numpy-discussion] Multiple Boolean Operations
Andrea Gavana
andrea.gavana@gmail....
Thu May 22 06:12:22 CDT 2008
Hi All,
I am building some 3D grids for visualization starting from a much
bigger grid. I build these grids by satisfying certain conditions on
x, y, z coordinates of their cells: up to now I was using VTK to
perform this operation, but VTK is slow as a turtle, so I thought to
use numpy to get the cells I am interested in.
Basically, for every cell I have the coordinates of its center point
(centroids), named xCent, yCent and zCent. These values are stored in
numpy arrays (i.e., if I have 10,000 cells, I have 3 vectors xCent,
yCent and zCent with 10,000 values in them). What I'd like to do is:
# Filter cells which do not satisfy Z requirements:
zReq = zMin <= zCent <= zMax
# After that, filter cells which do not satisfy Y requirements,
# but apply this filter only on cells who satisfy the above condition:
yReq = yMin <= yCent <= yMax
# After that, filter cells which do not satisfy X requirements,
# but apply this filter only on cells who satisfy the 2 above conditions:
xReq = xMin <= xCent <= xMax
I'd like to end up with a vector of indices which tells me which are
the cells in the original grid that satisfy all 3 conditions. I know
that something like this:
zReq = zMin <= zCent <= zMax
Can not be done directly in numpy, as the first statement executed
returns a vector of boolean. Also, if I do something like:
zReq1 = numpy.nonzero(zCent <= zMax)
zReq2 = numpy.nonzero(zCent[zReq1] >= zMin)
I lose the original indices of the grid, as in the second statement
zCent[zReq1] has no more the size of the original grid but it has
already been filtered out.
Is there anything I could try in numpy to get what I am looking for?
Sorry if the description is not very clear :-D
Thank you very much for your suggestions.
Andrea.
"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/
More information about the Numpy-discussion
mailing list