如何对数组中的每对连续元素求和



我有一个大小为(1,10):的数组

A = [1 2 3 4 5 6 7 8 9 10]

现在我想计算一个大小为(1,5)的新数组:

B = [3 7 11 15 19]

由构建

3 = 1 + 2
7 = 3 + 4
...
19 = 9 + 10

如何在Python中实现它?

您可以通过语法[::n]在每个第n个元素对数组进行索引

a = np.arange(1,11)
a[::2] + a[1::2]
array([ 3,  7, 11, 15, 19])

概括问题:

您有一个大小为2n的数组A,并且您想要得到大小为n的数组B,因此B中的每个元素都是A中按顺序取的两个元素的总和。

最简单的解决方案是创建一个具有n迭代的for循环,并对相应的元素求和。

A = np.array([1,2,3,4,5,6,7,8,9,10])
B = np.zeros(shape=(5), dtype=int)
for i in range(len(A) // 2):
B[i]=(A[2*i] + A[2*i+1])
print(B)

你也可以使用列表理解:

A = np.array([1,2,3,4,5,6,7,8,9,10])
B = np.array([A[2*i]+A[2*i+1] for i in range(len(A)//2)])
print(B)

A.shape是(10,(,而不是(1,10(。

A.reshape(-1,2)

制作(5.2(阵列

A.reshape(-1,2).sum(axis=1)

列间总和

最新更新