2

我想创建一个 numpy ndarray 本身类型为 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)。当更改FF = np.vectorize(lambda x: np.repeat(x,3))numpy 抱怨时ValueError: setting an array element with a sequence。我猜它会将条目本身检测为数组,并且不再将它们作为对象威胁。

我怎样才能避免这种情况并做同样的事情而不将 ndarray 中的条目包装成不同的东西?

非常感谢您的提示:)

4

1 回答 1

2

您可以(ab-)使用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)
于 2018-03-01T11:26:50.737 回答