如何计算Python中文本文件的和绝对值?
time = np.loadtxt("data.svc",delimiter=' ',skiprows=1, usecols=(2),unpack=True)
for i in range(len(time)):
sumTime = sum(abs(time[i]-time[i+1]))
我需要:(|time[0]-time[1]|)+(|time[1]-time[2]|)+(|time[2]-time[3]|)....
答案 0 :(得分:1)
您想要列表生成器:
li = [abs(time[i-1] - t) for i, t in enumerate(time) if i > 0]
sum(li)
制作以第二个元素开头的当前元素和前一元素之间的差异列表(按索引1)。
答案 1 :(得分:1)
您可以简单地使用NumPy函数来获得所需的结果:
np.sum(np.abs(np.diff(time)))
即使np.diff
计算差异time[i+1] - time[i]
(而不是time[i] - time[i+1]
),这也会根据您所需的公式生效,因为您使用的是绝对值。
因为它在NumPy数组上使用NumPy函数,所以它可能比任何Python理解和/或函数快得多。