如何以最有效的方式在数组中添加元素?

How to add elements within an array the most efficient way?

我有一个数组

myarray = [[a, b], [c, d], [e, f]]

我想得到

myarray_2 = [a + c + e, b + d + f]

如何在没有循环的情况下执行此操作?什么是最有效的方法或者最像 pythonic 的方法?

您可以使用 zipsum 和列表理解:

myarray = [[1, 2], [3, 4], [5, 6]]

myarray_2 = [sum(t) for t in zip(*myarray)]

print(myarray_2)

输出:

[9, 12]

无论子列表的大小如何,这都有效。

试试这个:

myarray_2 = list(map(sum, zip(*myarray)))

例如,如果 myarray = [[1, 2], [3, 4], [5, 6]]myarray_2 将是 [9, 12]

单行方法可能是转置矩阵并对行求和:

list(map(sum, zip(*myarray)))

习语 zip(*myarray) 通过在包含每一行中相应元素的元组上创建迭代器来转置输入。

如果您要处理数值数据,使用 numpy 可能是更好的方法:

np.array(myarray).sum(axis=0)