以 numpy 数组为对象的 Numpy 数组

Numpy array with numpy arrays as objects

我想创建一个带有 ndarray 类型本身条目的 numpy ndarray。我能够将 ndarrays 包装成另一种类型以使其工作,但我想在不包装的情况下执行此操作。将 ndarray x 包装成例如字典{1:x}我能做到

F = np.vectorize(lambda x: {1:np.repeat(x,3)})
F(np.arange(9).reshape(3,3))

并获得 (3,3) ndarray 与条目 {1:[0,0,0]} ... {1:[8,8,8]} (与 ndarrays)。当将 F 更改为 F = np.vectorize(lambda x: np.repeat(x,3)) 时,numpy 会抱怨 ValueError: setting an array element with a sequence。我猜它检测到条目本身是数组,不再将它们作为对象威胁。

如何避免这种情况并在不将 ndarray 中的条目包装成不同的东西的情况下做同样的事情?

非常感谢您的提示:)

您可以(滥用)使用 numpy.frompyfunc:

>>> F = np.arange(9).reshape(3, 3)
>>> np.frompyfunc(F.__getitem__, 1, 1)(range(3))
array([array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])], dtype=object)