首页 > 解决方案 > 覆盖ndarray的getitem时numpy buggy slice停止

问题描述

ndarray我正在尝试覆盖这样的 numpy 的 getitem

import numpy as np
class myarr(np.ndarray):
    def __getitem__(self, ij):
        return ij   # just return the slice object itself

但是,如果是开放式结束,我会检索一个奇怪的切片停止数字,并且将负切片开始增加一:

>>> a = myarr([1,2,3,4,5,6,7,8])
>>> a[-3:]
slice(-2, 9223372036854775807, None)

在这里,我期望slice(-3, None, None),这也是

>>> np.s_[-3:]

那么为什么会出现这种行为以及如何解决呢?

它确实发生在 Python 2.7.14 + numpy 1.14.0,而不是 Python 3.6.9 + numpy 1.18.5。

标签: python-2.7numpy

解决方案


推荐阅读