有人在这里问这个问题:Subclassing numpy ndarray 问题,但基本上没有答案。
这是我的问题版本。假设您将 numpy.ndarray 子类化为当您尝试将元素设置为超出当前形状时自动扩展的内容。您需要覆盖setitem并使用一些 numpy.concatenate 调用来构造一个新数组,然后以某种方式将其分配给“self”。如何将数组分配给“自我”?
class myArray(numpy.ndarray):
def __new__(cls, input_array):
obj = numpy.asarray(input_array).view(cls)
return(obj)
def __array_finalize__(self, obj):
if obj is None: return
try:
super(myArray, self).__setitem__(coords, value)
except IndexError as e:
logging.error("Adjusting array")
...
self = new_array # THIS IS WRONG