从NumPy数组继承的类如何更改自己的值?

2024-10-02 00:34:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的类,它继承了n维数组。我希望类的两个方法可以更改类实例的数组值。其中一个方法应该将类实例的数组设置为类实例的list data属性的值,另一个方法应该将一些列表值附加到类实例的数组中。我不知道如何实现这一点,但我的尝试如下:

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数组操作(如以下操作)中存活下来?公司名称:

^{pr2}$

那么,我可以对我的类做类似的事情并保留它的所有数据属性吗?在


Tags: 实例方法selfnumpy属性def数组variable
1条回答
网友
1楼 · 发布于 2024-10-02 00:34:45

你可以这样做:

class Variable(np.ndarray):

    def __new__(cls, a):
        obj = np.asarray(a).view(cls)
        return obj

    def updateNumPyArrayWithValues(self):
        self[1] = 1
        return self

>>> v = Variable([1,2,3])
>>> v
Variable([1, 2, 3])
>>> v.updateNumPyArrayWithValues()
Variable([1, 1, 3])
>>> v[v>1]
Variable([3])

相关问题 更多 >

    热门问题