有没有办法在numpy数组中的任何类中创建一个对象?类似的东西:
a = zeros(4)
for i in range(4):
a[i]=Register()
由于
答案 0 :(得分:13)
是的,你可以这样做:
a = numpy.array([Register() for _ in range(4)])
此处a.dtype
为dtype('object')
。
或者,如果你真的需要为数组保留内存然后逐个元素地构建它,你可以这样做:
a = numpy.empty(shape=(4,), dtype=object)
a[0] = Register() # etc.
答案 1 :(得分:5)
numpy数组中的项目是静态类型的,当你调用zeros
时,你会创建一个浮点数组。要存储任意Python对象,请使用
numpy.array([Register() for i in xrange(4)])
创建一个带dtype=object
的数组,您也可以手动指定。
考虑在这种情况下你是否真的想要numpy。我不知道这个例子与你的用例有多接近,但是通常一个ntype对象的numpy数组,特别是一维对象,至少和列表一样好。