具有numpy的对象数组

ki0*_*ki0 10 python arrays numpy

有什么方法可以在numpy数组中的任何类中创建一个对象吗?就像是:

a = zeros(4)

for i in range(4):
   a[i]=Register()
Run Code Online (Sandbox Code Playgroud)

谢谢

Eri*_*got 15

是的,你可以这样做:

a = numpy.array([Register() for _ in range(4)])
Run Code Online (Sandbox Code Playgroud)

在这里,a.dtypedtype('object').

或者,如果您确实需要为数组保留内存,然后逐个元素地构建它,您可以执行以下操作:

a = numpy.empty(shape=(4,), dtype=object)
a[0] = Register()  # etc.
Run Code Online (Sandbox Code Playgroud)


Mik*_*ham 5

numpy数组中的项是静态类型的,当你调用时,zeros你创建一个浮点数组.要存储任意Python对象,请使用类似的代码

numpy.array([Register() for i in xrange(4)])
Run Code Online (Sandbox Code Playgroud)

这是一个数组dtype=object,你也可以手动指定.

考虑在这种情况下你是否真的想要numpy.我不知道这个例子与你的用例有多接近,但是通常一个ntype对象的numpy数组,尤其是一维对象,至少和列表一样.