Python NumPy计算总和

Python NumPy计算总和,python,arrays,numpy,Python,Arrays,Numpy,我有一个p数组,表示6个力(权重): 我有一个d数组,它表示力与原点之间的距离(0) 我想计算每个I i是从2到4的索引(2次迭代:2次和3次,不包括4次) Pl(i)是位于Pi左侧的力 d(i)是位于Pi左侧到Pi的力的距离 示例:对于i=2: P2=P的第三个值(索引从0开始)=6 Pl(2)=分别为3和4 d(i)=6-0=6和6-4.5=1.5 Pl(i)*d(i)=(3*6)+(4*1.5)=24之和 我试过: Di = np.array([]) Pl = np.array([]) f

我有一个p数组,表示6个力(权重):

我有一个d数组,它表示力与原点之间的距离(0)

我想计算每个I

i是从2到4的索引(2次迭代:2次和3次,不包括4次)

Pl(i)是位于Pi左侧的力

d(i)是位于Pi左侧到Pi的力的距离

示例:对于i=2: P2=P的第三个值(索引从0开始)=6

Pl(2)=分别为3和4

d(i)=6-0=6和6-4.5=1.5

Pl(i)*d(i)=(3*6)+(4*1.5)=24之和

我试过:

Di = np.array([])
Pl = np.array([])
for x in range(2,4):
   Pl = P[:x]
   Pl = np.append(Pl, P[:x])

     
  for i in range (0,x):
               di = d[x]-d[i]
               Di = np.append(Di, di)
它可以工作,但它给出了Di的一个数组示例:

Di[6.1.5 10.5 6.4.5]

我想要:

对于i=2,D2=[6.1.5]
D3=[10.5 6.4.5]对于i=3,如果我正确理解了您的问题,下面的代码应该会给出每次迭代的预期总和结果

import numpy as np

forces_sum = []
for i in range(2,4):
    Pi = P[:i]
    Di = d[i] - d[:i]
    forces_sum.append(np.sum(Pi * Di))
编辑: 如果您希望在每次迭代中也使用Pi和Di:

forces_sum = []
Pi = []
Di = []
for i in range(2,4):
    Pi.append(P[:i])
    Di.append(d[i] - d[:i])
    forces_sum.append(np.sum(Pi[-1] * Di[-1]))

谢谢,这是正确的,但是我想要两个Pi数组和两个Di数组,每个itération都有一个数组,这样我可以显示每个itération的Pi与Di的乘积。好的,我对答案进行了编辑,稍作修改,在每次迭代中也存储Pi和Di。非常感谢:)
import numpy as np

forces_sum = []
for i in range(2,4):
    Pi = P[:i]
    Di = d[i] - d[:i]
    forces_sum.append(np.sum(Pi * Di))
forces_sum = []
Pi = []
Di = []
for i in range(2,4):
    Pi.append(P[:i])
    Di.append(d[i] - d[:i])
    forces_sum.append(np.sum(Pi[-1] * Di[-1]))