core.py 文件源码

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

项目:smoomapy 作者: mthh 项目源码 文件源码
def define_levels(self, nb_class, disc_func):
        pot = self.pot
        _min = np.nanmin(pot)

        if not nb_class:
            nb_class = int(get_opt_nb_class(len(pot)) - 2)
        if not disc_func or "prog_geom" in disc_func:
            levels = [_min] + [
                np.nanmax(pot) / i for i in range(1, nb_class + 1)][::-1]
        elif "equal_interval" in disc_func:
            _bin = np.nanmax(pot) / nb_class
            levels = [_min] + [_bin * i for i in range(1, nb_class+1)]
        elif "percentiles" in disc_func:
            levels = np.percentile(
                np.concatenate((pot[pot.nonzero()], np.array([_min]))),
                np.linspace(0.0, 100.0, nb_class+1))
        elif "jenks" in disc_func:
            levels = list(jenks_breaks(np.concatenate(
                ([_min], pot[pot.nonzero()])), nb_class))
            levels[0] = levels[0] - _min * 0.01
        elif "head_tail" in disc_func:
            levels = head_tail_breaks(np.concatenate(
                ([_min], pot[pot.nonzero()])))
        elif "maximal_breaks" in disc_func:
            levels = maximal_breaks(np.concatenate(
                ([_min], pot[pot.nonzero()])), nb_class)
        else:
            raise ValueError

        return levels
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号