我有一个继承自 NumPy n 维数组的简单类。我想要该类的两个方法可以更改该类实例的数组值。其中一种方法应将类实例的数组设置为类实例的列表数据属性的值,另一种方法应将一些列表值附加到类实例的数组中。我不确定如何实现这一点,但我的尝试如下:
import numpy
class Variable(numpy.ndarray):
def __new__(cls, name = "zappo"):
self = numpy.asarray([]).view(cls)
self._values = [1, 2, 3] # list of values
return(self)
def updateNumPyArrayWithValues(self):
self = numpy.asarray(self._values)
def appendToNumPyArray(self):
self = numpy.append(self, [4, 5, 6])
a = Variable()
print(a)
a.updateNumPyArrayWithValues()
print(a)
作为一个快速的、先发制人的问题,这个类能否在标准 NumPy 数组操作中幸存下来,如下所示?:
>>> v1 = np.array([23, 20, 13, 24, 25, 28, 26, 17, 18, 29])
>>> v1 = v1[v1 >= 20]
那么,我可以对我的类做类似的事情并保留其所有数据属性吗?