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