Hi, Just some immediate minor observations that are really about trying to be consistent:
1) Could you keep the display of the NA dtype be the same as the array? For example, NA dtype is displayed as '<f8' but should be displayed as 'float64' as that is the array dtype. >>> a=np.array([[1,2,3,np.NA], [3,4,np.nan,5]]) >>> a array([[ 1., 2., 3., NA], [ 3., 4., nan, 5.]]) >>> a.dtype dtype('float64') >>> a.sum() NA(dtype='<f8') 2) Can the 'skipna' flag be added to the methods? >>> a.sum(skipna=True) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'skipna' is an invalid keyword argument for this function >>> np.sum(a,skipna=True) nan 3) Can the skipna flag be extended to exclude other non-finite cases like NaN? 4) Assigning a np.NA needs a better error message but the Integer array case is more informative: >>> b=np.array([1,2,3,4], dtype=np.float128) >>> b[0]=np.NA Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: float() argument must be a string or a number >>> j=np.array([1,2,3]) >>> j array([1, 2, 3]) >>> j[0]=ina Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: int() argument must be a string or a number, not 'numpy.NAType' But it is nice that np.NA 'adjusts' to the insertion array: >>> b.flags.maskna = True >>> ana NA(dtype='<f8') >>> b[0]=ana >>> b[0] NA(dtype='<f16') 5) Different display depending on masked state. That is I think that 'maskna=True' should be displayed always when flags.maskna is True : >>> j=np.array([1,2,3], dtype=np.int8) >>> j array([1, 2, 3], dtype=int8) >>> j.flags.maskna=True >>> j array([1, 2, 3], maskna=True, dtype=int8) >>> j[0]=np.NA >>> j array([NA, 2, 3], dtype=int8) # Ithink it should still display 'maskna=True'. Bruce _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion