扩展numpy数组
我刚接触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来说会是个问题?
1 个回答
2
你想要的是继承 np.ndarray
,而不是 np.array
,不过这比你在例子中简单地把一个换成另一个要复杂一些。建议你看看官方文档,了解更多信息:http://docs.scipy.org/doc/numpy/user/basics.subclassing.html