[Numpy-discussion] Is apply_over_axes working for np.ma function?

Chao YUE chaoyuejoy at gmail.com
Thu Nov 22 16:08:50 EST 2012


Dear all,

I tried the np.apply_over_axes and np.ma.apply_over_axes, it seems that
they are not working for the masked array?
I searched the wiki and there are two tickets (1480,8417) related with
this, it seems that it's a solved issue?

the example is below:

In [67]: a = np.arange(60.).reshape(3,4,5)

In [68]: tempm = np.tile(np.array([True,True,False,False,False]),(3,4,1))

In [69]: b = np.ma.masked_array(a,mask=tempm)

In [70]: np.apply_over_axes(np.ma.sum,a,[1,2])
Out[70]:
array([[[ 190.]],

       [[ 590.]],

       [[ 990.]]])

In [71]: np.ma.sum(np.ma.sum(a,axis=1),axis=1)
Out[71]: array([ 190.,  590.,  990.])

In [72]: np.ma.sum(np.ma.sum(b,axis=1),axis=1)
Out[72]:
masked_array(data = [126.0 366.0 606.0],
             mask = [False False False],
       fill_value = 1e+20)


In [73]: np.apply_over_axes(np.ma.sum,b,[1,2])
Out[73]:
array([[[ 190.]],

       [[ 590.]],

       [[ 990.]]])

In [74]: np.apply_over_axes(np.sum,b,[1,2])
Out[74]:
array([[[ 190.]],

       [[ 590.]],

       [[ 990.]]])

In [75]: np.ma.apply_over_axes(np.sum,b,[1,2])
Out[75]:
array([[[ 190.]],

       [[ 590.]],

       [[ 990.]]])

In [76]: np.ma.apply_over_axes(np.ma.sum,b,[1,2])
Out[76]:
array([[[ 190.]],

       [[ 590.]],

       [[ 990.]]])


thanks,

Chao

-- 
***********************************************************************************
Chao YUE
Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
UMR 1572 CEA-CNRS-UVSQ
Batiment 712 - Pe 119
91191 GIF Sur YVETTE Cedex
Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16
************************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20121122/f96379fc/attachment.html>


More information about the NumPy-Discussion mailing list