example_loikith_et_al.py 文件源码

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

项目:elm 作者: ContinuumIO 项目源码 文件源码
def scipy_describe(x, **kwargs):
    print('Start scipy_describe')
    band_arr = getattr(x, TEMP_BAND)
    cols = ('var', 'skew', 'kurt', 'min', 'max', 'median', 'std', 'np_skew')
    inter = tuple(combinations(range(len(cols)), 2))
    cols = cols + tuple((cols[i], cols[j]) for i, j in inter)
    num_cols = len(cols)
    num_rows = np.prod(band_arr.shape[1:])
    new_arr = np.empty((num_rows, num_cols))
    for row, (i, j) in enumerate(product(*(range(s) for s in band_arr.values.shape[1:]))):
        values = band_arr.values[:, i, j]
        d = describe(values)
        t = (d.variance, d.skewness, d.kurtosis, d.minmax[0], d.minmax[1])
        median = np.median(values)
        std = np.std(values)
        non_param_skew = (d.mean - median) / std

        r = t + (median, std, non_param_skew)
        interact = tuple(r[i] * r[j] for i, j in inter)
        new_arr[row, :] = r + interact
    attrs = copy.deepcopy(x.attrs)
    attrs.update(kwargs)
    da = xr.DataArray(new_arr,
                      coords=[('space', np.arange(num_rows)),
                              ('band', np.arange(num_cols))],
                      dims=('space', 'band'),
                      attrs=attrs)
    return ElmStore({'flat': da}, attrs=attrs, add_canvas=False)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号