如何解决如何编写仅接受复数值的 numpy.ndarray 的子类?
我想创建一个 numpy.ndarray 的子类,它是一个复数数组。为此,我试图让我的 sublass 的构造函数返回一个 (0+0j) 的数组。我暂时没有成功... 到目前为止,这是我的代码:
import numpy as np
class ComplexArray(np.ndarray):
def __init__(self,args):
np.ndarray.__init__(args,dtype=complex)
self.fill(0)
a = ComplexArray(3)
a[0] = 1j
运行上述代码时,出现错误 TypeError: can't convert complex to float
。
我指定创建这样一个子类的原因是之后我想在其中实现几个方法。
预先感谢您的建议!
解决方法
我找到了一个解决方案:
import numpy as np
class ComplexArray(np.ndarray):
def __new__(cls,n):
ret = np.zeros(n,dtype=complex)
return ret.view(cls)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。