Python NumPy计算总和

2024-10-02 00:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

P = np.array([3, 4, 6, 8, 10, 12])

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

d = np.array([0, 4.5, 6, 10.5, 15, 16.5])

我想计算每个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] 对于i=3,D3=[10.56.4.5]


Tags: in距离示例fornppirange数组
1条回答
网友
1楼 · 发布于 2024-10-02 00:31:46

如果我正确理解了您的问题,下面的代码应该为您提供每个迭代的预期总和结果

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]))

相关问题 更多 >

    热门问题