On Tue, Jul 14, 2009 at 14:42, Chris Colbert<sccolb...@gmail.com> wrote: > for your particular case: > >>>> a = np.array([1, 5, 4, 99], 'f') >>>> b = np.array([3, 7, 2, 8], 'f') >>>> c = b.copy() >>>> d = a!=99 >>>> c[d] = (a[d] + b[d])/2. >>>> c > array([ 2., 6., 3., 8.], dtype=float32) >>>>
A more general answer is to use masked arrays. In [5]: a = np.array([1, 5, 4, 99], 'f') In [6]: b = np.array([3, 7, 2, 8], 'f') In [7]: c = np.vstack([a,b]) In [8]: d = np.ma.masked_equal(c, 99.0) In [9]: d Out[9]: 8 masked_array(data = [[1.0 5.0 4.0 --] [3.0 7.0 2.0 8.0]], mask = [[False False False True] [False False False False]], fill_value = 1e+20) In [10]: d.mean(axis=0) Out[10]: 4 masked_array(data = [2.0 6.0 3.0 8.0], mask = [False False False False], fill_value = 1e+20) -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion