python - 如何使用 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 类而不是创建我自己的类?我不需要这个工作,只是想知道是否可能,提前谢谢!
解决方案
我不确定这是否是最好的方法,但这是一种方法。
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 方法来证明附加工作。
推荐阅读
- powershell - 使用 WinSCP 和带有电子邮件通知的批处理文件进行自动 FTP 传输
- android - 如何选择 Android 应用程序包中包含的架构?
- reactjs - 是否可以在不刷新或退出页面的情况下在 react 应用程序中打开 OAuth 2.0 验证窗口?
- excel - 循环遍历多个工作表并制作嵌入式图形
- r - R matlib plotEqn,你如何绘制4个变量方程?
- javascript - 如何设置一个 javascript 函数来处理多个 html 选择元素
- hadoop - 关于不推荐使用的方法 ParquetFileReader.readFooter
- ios - SwiftUI 斜体文本剪辑
- blazor - 在 Blazor WASM 中,如何创建不使用身份验证的服务?
- php - 使用 JSON AUTO 输出在 SQL SERVER 上生成的 PHP 中的 JSON