我尝试创建一个继承numpy.ndarray
的类,但我想使用返回ndarray
的函数对其进行初始化。具体来说,我想使用方便的ndarray
函数从CSV文件生成numpy.genfromtxt()
。例如(我知道这段代码不能达到我想要的效果):
class MyClass(numpy.ndarray):
def __init__(self, other_parameter):
self = numpy.genfromtxt(filename, delimiter=',')
self.other_param = other_parameter
关键是我希望通过添加其他功能/属性来扩展ndarray
,而不会丢失ndarray
的接口。我知道我可以在一个类中拼凑属性,其中一个是ndarray
。是否可以使用不是__init__()
的构造函数(在我的类定义super().__init__()
内)进行扩展?
我已经为其他几种语言找到了这种类型的东西的答案,但不是Python。我之前想要使用类似的init函数,但从未找到过如何做到这一点。
答案 0 :(得分:0)
对于上述评论,此答案的信用额主要属于juanpa.arrivillaga。答案是this section of the link。来自whole doc page的其他信息有助于充分理解它。
简短的回答是,在自定义类定义中使用__new__()
构造函数(我还不知道的标准Python)和“视图转换”,这是特殊的ndarray
功能