我是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的问题?
您想要子类化np.ndarray
,而不是np.array
,但在您的示例中,这比仅仅交换另一个要复杂一些。可能值得一看文档:http://docs.scipy.org/doc/numpy/user/basics.subclassing.html