我也想上这样的课
class Test(np.ndarray):
def shift_up(self):
arr = np.copy(self)
n = len(self)
for i in range(1,n)[::-1]:
arr[i] = arr[i-1]
arr[0] = np.nan
self.__init__(arr)
def truncate(self,index):
arr = np.copy(self)
arr_slice = np.copy(arr[:index+1])
self.__init__(arr_slice)
array = Test(np.array([1,2,3,4,5]))
array.truncate(5)
我知道我可以用 numpy 函数来做到这一点。但我希望它是这样的,只是为了让它更易读。但这不起作用。
尝试
class Test:
def __init__(self,npArray):
self.__npArr__ = npArray.copy()
def truncate(self,index):
if index > len(self.__npArr__):
pass #Make sure you check the boundaries first
self.__npArr__ = self.__npArr__[:index]
def __str__(self): #This is called when you're trying to print the object
return str(self.__npArr__)
array = Test( np.array([1,2,3,4,5]))
array.truncate(3)
print(array)