class Foo(object):

    def __init__(self):
        self.arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], np.int32)

def __array__(self):
    return self.arr

def __iter__(self):
    for elem in self.arr:
        yield elem

def __len__(self):
    pass
numpy - transform a list of objects into an array without subclassing ndarray