[Numpy-discussion] Geometrically defined masking arrays; how to optimize?
chris.barker at noaa.gov
Wed Feb 12 14:04:08 EST 2014
An extra note here:
One of the great things about numpy (as opposed, to say, MATLAB), is
array broadcasting Thus you generally don't need meshgrid -- why carry all
that extra repetitive data around. So here's a version that uses
radius = 5
# Center at 0, 0
x = np.linspace(-5,5,11)
# y is re-shaped to be a column vector...
y = np.linspace(-8,8,17).reshape((-1,1))
# when you add x and y you get the 2-d array for the results...
out_circle = (x * x + y * y < radius**2)
On Wed, Feb 12, 2014 at 2:43 AM, Wolfgang Draxinger <
Wolfgang.Draxinger at physik.uni-muenchen.de> wrote:
> On Tue, 11 Feb 2014 22:16:46 +0100
> Daπid <davidmenhur at gmail.com> wrote:
> > Here it is an example:
> > import numpy as np
> > import pylab as plt
> > N = 100
> > M = 200
> > x, y = np.meshgrid(np.arange(N), np.arange(M))
> > # Center at 40, 70, radius 20
> > x -= 40
> > y -= 70
> > out_circle = (x * x + y * y < 20**2)
> > Note that I have avoided taking the costly square root of each
> > element by just taking the square of the radius. It can also be
> > generalised to ellipses or rectangles, if you need it.
> Oops, why did I take the "long" tour anyway?
> > Also, don't use 0 as a False value, and don't force it to be a 0.
> > Instead, use "if not ring:"
> 'ring' is not a boolean, but a numeric index and the test is if the
> index is nonzero. I could have also written 'if ring > 0:' and swapped
> the clauses. Yes I know that for a value 0 zero it will test as not,
> but in this case I wanted to have it written down, that this tests for
> a certain numerical value.
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
Christopher Barker, Ph.D.
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion