我是Python / numpy的新手。
我正在尝试扩展numpy.array,为它提供一些功能,使其能够很好地表示图像(例如转换为灰度等)。
import numpy as np
import cv2
from support import *
import matplotlib.pyplot as plt
class Frame(np.array):
def __init__(self):
print "new frame"
f = Frame()
目前这给了我:
File "o.py", line 6, in <module>
class Frame(np.array):
TypeError: Error when calling the metaclass bases
cannot create 'builtin_function_or_method' instances
我不明白为什么这是Python的问题?
答案 0 :(得分:2)
您想要成为np.ndarray
的子类,而不是np.array
,但它比在您的示例中仅替换另一个更复杂一点。它可能值得一看文档:
http://docs.scipy.org/doc/numpy/user/basics.subclassing.html