фрагмент с ошибками numpy останавливается при переопределении getitem из ndarray

#python-2.7 #numpy

#python-2.7 #numpy

Вопрос:

Я пытаюсь переопределить getitem numpy ndarray следующим образом

 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.

Комментарии:

1. 9223372036854775807 — это самое большое целое число со знаком, которое вы можете представить в 64 битах , поэтому это последний элемент, к которому вы сможете обратиться в NumPy, так что это в основном «конец».

2. Если это не вызывает никаких проблем, его не нужно исправлять.