首页 > 解决方案 > 如何使用 append() 函数扩展 Numpy 数组类?

问题描述

我怎样才能实现:

>>> foo = np.array([1,2,3])
array([1,2,3])
>>> foo.append(4)
array([1,2,3,4])

而不是numpy的:

np.append(foo, 4)

我已经尝试过以下内容:

import numpy as np
class myarrayclass(np.array):
    def append(self, value):
        self.object = np.append(self.object, value)

另外,是否可以覆盖 numpy 类而不是创建我自己的类?我不需要这个工作,只是想知道是否可能,提前谢谢!

标签: pythonarraysnumpyclass

解决方案


我不确定这是否是最好的方法,但这是一种方法。

import numpy as np

class myarrayclass(object):
    def __init__(self, in_array):
        self.array = in_array
        
    def append(self, val):
        self.array = np.append(self.array, val)
      
    def show(self):
        return self.array
        
        
foo = np.array([1,2,3])


myarray = myarrayclass(foo)
myarray.append(5)

myarray.show()
#Out[7]: array([1, 2, 3, 5])

当你创建一个对象时,你需要用def __init__(self, in_array). 在这里,我包含了一个简单的附加和显示方法。我包含了 show 方法来证明附加工作。


推荐阅读