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.dtype是dtype('object').
或者,如果您确实需要为数组保留内存,然后逐个元素地构建它,您可以执行以下操作:
a = numpy.empty(shape=(4,), dtype=object)
a[0] = Register() # etc.
Run Code Online (Sandbox Code Playgroud)
numpy数组中的项是静态类型的,当你调用时,zeros你创建一个浮点数组.要存储任意Python对象,请使用类似的代码
numpy.array([Register() for i in xrange(4)])
Run Code Online (Sandbox Code Playgroud)
这是一个数组dtype=object,你也可以手动指定.
考虑在这种情况下你是否真的想要numpy.我不知道这个例子与你的用例有多接近,但是通常一个ntype对象的numpy数组,尤其是一维对象,至少和列表一样.