
[dubois@ldorritt ~]$ pydoc MA.sum Python Library Documentation: function sum in MA sum(a, axis=0, fill_value=0) Sum of elements along a certain axis using fill_value for missing. If you use add.reduce, you'll get what you want.
print m [[1 ,2 ,3 ,-- ,5 ,] [10 ,20 ,30 ,-- ,50 ,]] MA.sum(m) array([11,22,33, 0,55,]) MA.add.reduce(m) array(data = [ 11, 22, 33,-99, 55,], mask = [0,0,0,1,0,], fill_value=-99)
In other words, sum(m, axis, fill_value) = add.reduce(filled(m, fill_value), axis) Surprising in your case. Still, both uses are quite common, so I probably was thinking to myself that since add.reduce already does one of the jobs, I might as well make sum do the other one. One could have just as well argued that one was a synonym for the other and so it is revolting to have them be different. Well, MA users, is this something I should change, or not? -----Original Message----- From: numpy-discussion-admin@lists.sourceforge.net [mailto:numpy-discussion-admin@lists.sourceforge.net] On Behalf Of Sue Giller Sent: Wednesday, November 28, 2001 9:03 AM To: numpy-discussion@lists.sourceforge.net Subject: [Numpy-discussion] Using Reduce with Multi-dimensional Masked array I posted the following inquiry to python-list@python.org earlier this week, but got no responses, so I thought I'd try a more focused group. I assume MA module falls under NumPy area. I am using 2 (and more) dimensional masked arrays with some numeric data, and using the reduce functionality on the arrays. I use the masking because some of the values in the arrays are 'missing' and should not be included in the results of the reduction. For example, assume a 5 x 2 array, with masked values for the 4th entry for both of the 2nd dimension cells. If I want to sum along the 2nd dimension, I would expect to get a 'missing' value for the 4th entry because both of the entries for the sum are 'missing'. Instead, I get 0, which might be a valid number in my data space, and the returned 1 dimensional array has no mask associated with it. Is this expected behavior for masked arrays or a bug or am I misusing the mask concept? Does anyone know how to get the reduction to produce a masked value? Example Code:
import MA a = MA.array([[1,2,3,-99,5],[10,20,30,-99,50]]) a [[ 1, 2, 3,-99, 5,] [ 10, 20, 30,-99, 50,]] m = MA.masked_values(a, -99) m array(data = [[ 1, 2, 3,-99, 5,] [ 10, 20, 30,-99, 50,]], mask = [[0,0,0,1,0,] [0,0,0,1,0,]], fill_value=-99)
r = MA.sum(m) r array([11,22,33, 0,55,]) t = MA.getmask(r) print t None
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion