我想用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中的条目包装成不同的东西,我怎么能避免这种情况并做同样的事情呢?
非常感谢提示:)
你可以(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)