我试图得到一个结构化数组的和。是否需要在字段名称周围使用“for”循环,或者我可以在一行中完成。我每次跑步都要这样做一百万次,所以我需要保持快速。
>>> test = np.array([(1,2,3),(4,5,6)], dtype={'names' : ["One", "Two", "Three"], 'formats' : ["f8"]*3})
>>> test
array([(1., 2., 3.), (4., 5., 6.)],
dtype=[('One', '<f8'), ('Two', '<f8'), ('Three', '<f8')])
>>> np.sum(test)
...
numpy.core._exceptions._UFuncNoLoopError: ufunc 'add' did not contain a loop with signature matching types (dtype([('One', '<f8'), ('Two', '<f8'), ('Three', '<f8')]), dtype([('One', '<f8'), ('Two', '<f8'), ('Three', '<f8')])) -> None
字符串
与np.sum(test,axis=0)相似
我期待一个结构化数组:[(5,7,9),dtype=...]。至少,没有错误。
1条答案
按热度按时间gojuced71#
因此,在这种情况下,由于您的结构具有相同的基本类型,因此您可以很容易地使用视图:
字符串
现在,如果你不能很容易地从你原来的结构化dtype创建一个视图,你可以使用一个字段循环,这应该不会太慢:
型