Python:汇总循环返回的数组元素

时间:2013-09-11 22:57:57

标签: python arrays physics

import matplotlib.pyplot as plt
import numpy as np
from pylab import *
from numpy import *

AA = np.ndindex(10,10,10)
G = .0000000000066
m = 20000
P0= (20, 0, 0)

for i in AA:   
   print sum(-G*m*(P0[0]-i[0])/(sqrt((P0[0]-i[0])**2+(P0[1]-i[1])**2+(P0[2]-i[2])**2)**3))

我正在尝试创建一个程序,将一个函数应用于数组中的所有元素,然后将所有新元素相加在一起(实际上我正在尝试做的是找到由于重力施加在观察者身上的加速度从一定距离的立方体)。当前代码返回的是一个元组数组(所有元组都已被操作),但是我无法将结果汇总在一起。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

sum()

中使用生成器表达式
print sum(-G*m*(P0[0]-i[0])/(sqrt((P0[0]-i[0])**2+(P0[1]-i[1])**2+(P0[2]-i[2])**2)**3)
              for i in AA)

(为了便于阅读,我将for i in AA块移动到下一行,但这可以很容易地写成一行)