stats.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:BigBrotherBot-For-UrT43 作者: ptitbigorneau 项目源码 文件源码
def atmean(a,limits=None,inclusive=(1,1)):
    """
   Returns the arithmetic mean of all values in an array, ignoring values
   strictly outside the sequence passed to 'limits'.   Note: either limit
   in the sequence, or the value of limits itself, can be set to None.  The
   inclusive list/tuple determines whether the lower and upper limiting bounds
   (respectively) are open/exclusive (0) or closed/inclusive (1).

   Usage:   atmean(a,limits=None,inclusive=(1,1))
   """
    if a.dtype in [N.int_, N.short,N.ubyte]:
        a = a.astype(N.float_)
    if limits == None:
        return mean(a)
    assert type(limits) in [ListType,TupleType,N.ndarray], "Wrong type for limits in atmean"
    if inclusive[0]:         lowerfcn = N.greater_equal
    else:               lowerfcn = N.greater
    if inclusive[1]:         upperfcn = N.less_equal
    else:               upperfcn = N.less
    if limits[0] > N.maximum.reduce(N.ravel(a)) or limits[1] < N.minimum.reduce(N.ravel(a)):
        raise ValueError, "No array values within given limits (atmean)."
    elif limits[0]==None and limits[1]<>None:
        mask = upperfcn(a,limits[1])
    elif limits[0]<>None and limits[1]==None:
        mask = lowerfcn(a,limits[0])
    elif limits[0]<>None and limits[1]<>None:
        mask = lowerfcn(a,limits[0])*upperfcn(a,limits[1])
    s = float(N.add.reduce(N.ravel(a*mask)))
    n = float(N.add.reduce(N.ravel(mask)))
    return s/n
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号