扩展numpy数组

3 投票
1 回答
927 浏览
提问于 2025-04-18 03:00

我刚接触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

撰写回答