按照说明here我创建了一个子类ndarray,它向ndarray类添加了新属性。现在我想为新类定义一个比较运算符,它除了比较数据,还比较属性的值。所以我试了这个:
def __eq__(self, other):
return (self._prop1 == other._prop1) and \
(self._prop2 == other._prop2) and \
(self.data == other.data)
这允许类似T1 == T2
的比较,并返回布尔值。但是,由于我想将这些数组与其他ndarray互换使用,因此我希望比较返回一个布尔数组。如果我没有定义我的__eq__
函数,那么比较返回一个布尔数组,但是我不能检查属性。如何将两者结合起来
根据suggestion by hpaulj,我通过查看
np.ma.core.MaskedArray.__eq__
了解了如何做到这一点。以下是供参考的最低实现。主要思想是在DerivedArray
基类类型的self
视图上调用numpy__eq__()
相关问题 更多 >
编程相关推荐