有人問這裏的問題:Subclassing numpy ndarray problem但它基本上沒有答案。python 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
對自己的分配似乎只是無稽之談,你如何支持替換一個對象?此外,使用numpy數組做這樣的操作會使數組視圖無效。你不能用子類來做到這一點,有一個原因'ndarray.resize'是如此限制... – seberg