理解np.apply_along_axis||Cython array-based functions

  • Overview

    From ExponentialMovingWindow:

    def _apply(self, func):
        """
            Rolling statistical measure using supplied function. Designed to be
            used with passed-in Cython array-based functions.
            Parameters
            ----------
            func : str/callable to apply
            Returns
            -------
            y : same type as input argument
            """
        blocks, obj = self._create_blocks(self._selected_obj)
        block_list = list(blocks)
    
        results = []
        exclude = []
        for i, b in enumerate(blocks):
            try:
                values = self._prep_values(b.values)
    
                except (TypeError, NotImplementedError) as err:
                    if isinstance(obj, ABCDataFrame):
                        exclude.extend(b.columns)
                        del block_list[i]
                        continue
                        else:
                            raise DataError("No numeric types to aggregate") from err
    
                            if values.size == 0:
                                results.append(values.copy())
                                continue
    
                                results.append(np.apply_along_axis(func, self.axis, values))
    
                                return self._wrap_results(results, block_list, obj, exclude)
    
  • np.apply_along_axis

    numpy.apply_along_axis(func1d, axis, arr, *args, **kwargs)

    Apply a function to 1-D slices along the given axis.

    Execute func1d(a, *args, **kwargs) where func1d operator on 1-D arrays and a is a 1-D slice of arr along axis.

    This is equivalent to (but faster than) the following use of ndindex and s_, which sets each of ii, jj and kk to a tuple of indices.

  • Cython array-based functions

    Cython for NumPy users

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值