我有一个 numpy 数组子类,我希望能够连接它们。
import numpy as np
class BreakfastArray(np.ndarray):
def __new__(cls, n=1):
dtypes=[("waffles", int), ("eggs", int)]
obj = np.zeros(n, dtype=dtypes).view(cls)
return obj
b1 = BreakfastArray(n=1)
b2 = BreakfastArray(n=2)
con_b1b2 = np.concatenate([b1, b2])
print(b1.__class__, con_b1b2.__class__)
这输出
<class '__main__.BreakfastArray'> <class 'numpy.ndarray'>
,但我希望连接数组也是一个 BreakfastArray
类。看来我可能需要添加一个 __array_finalize__
方法,但我无法找出正确的方法。
创建
con_bib2
作为新的 BreakfastArray
,然后在连接存储时使用 out=con_bib2
。
con_bib2 = BreakfastArray(n=3)
np.concatenate([b1, b2], out=con_bib2)