Numpy数组以numpy数组作为对象

问题描述 投票:2回答:1

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

如果不将ndarray中的条目包装成不同的东西,我怎么能避免这种情况并做同样的事情呢?

非常感谢提示:)

python numpy numpy-ndarray
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)
© www.soinside.com 2019 - 2024. All rights reserved.