Python 用于在数组元素内进行减法的循环
我是一个使用Python和Numpy的新手。 我认为这很简单,而且可能是。 我有一系列的时间。Python 用于在数组元素内进行减法的循环,python,for-loop,numpy,Python,For Loop,Numpy,我是一个使用Python和Numpy的新手。 我认为这很简单,而且可能是。 我有一系列的时间。 例如: times = (0.5, 0.75, 1.5) 此数组的大小因加载的文件而异 我只是想找出每个后续元素之间的时间差 0.75 - 0.5 then 1.5 - 0.75 数组中的元素数也是如此。 然后我把每个结果放在一列中 我尝试过各种for循环,但都做不到。一定有一个简单的方法 谢谢, 斯科特这个怎么样 >>> import numpy as np >>
例如:
times = (0.5, 0.75, 1.5)
此数组的大小因加载的文件而异
我只是想找出每个后续元素之间的时间差
0.75 - 0.5
then
1.5 - 0.75
数组中的元素数也是如此。
然后我把每个结果放在一列中
我尝试过各种for循环,但都做不到。一定有一个简单的方法
谢谢,
斯科特这个怎么样
>>> import numpy as np
>>> a = np.array([0.5, 0.75, 1.5])
>>> np.diff(a)
array([ 0.25, 0.75])
>>>
或者这些(同一主题的所有变体)如何:
或者没有numpy:
a=[0.5, 0.75, 1.5]
a1=a[1:]
a2=a[:-1]
b=[ aa-a2[i] for i,aa in enumerate(a1) ]
或
首先,请注意,对于大多数日常使用,您可能不需要数组(这是Numpy中的一种特殊数据类型)。Python的主要数据存储方式是列表,如果您来自更严格的编程语言,那么它绝对值得一读。列表实际上是使用方括号定义的:
times = [ 0.5, 0.75, 1.5 ]
然后,使用称为列表理解的特殊语法,我们可以创建一个包含(length-1)元素的新列表。此表达式自动计算所需列表的大小
diffs = [ times[i] - times[i-1] for i in range(1, len(times)) ]
对于提供的样本数据,返回:
[0.25, 0.75]
这种方法不需要简单的Python。减去
times[1:]
(0.75, 1.5)
times[:-1]
(0.5, 0.75)
从彼此之间这应该可以做到
import numpy as np
times = np.array([0.5,0.75,1.5,2.0])
diff_times = np.zeros(len(times)-1,dtype =float)
for i in range(1,len(times)):
diff_times[i-1] = times[i] - times[i-1]
print diff_times
非常基本:
liste = [1,3,8]
difference = []
for i in range(len(liste)-1):
diffs = abs(liste[i] - liste[i+1])
difference.append(diffs)
print difference
你试过什么了?顺便说一句,这是一个常见的问题。在这里或谷歌上搜索。也感谢Marcin,我在网上看到的或尝试过的所有东西都没有回答这个问题(我猜是糟糕的搜索)。我遇到的麻烦是独立。元素在数组中相互计算。一切都是关于一个元素,而不是两个。你的链接和这里的其他建议都非常有用。谢谢
times[1:]
(0.75, 1.5)
times[:-1]
(0.5, 0.75)
import numpy as np
times = np.array([0.5,0.75,1.5,2.0])
diff_times = np.zeros(len(times)-1,dtype =float)
for i in range(1,len(times)):
diff_times[i-1] = times[i] - times[i-1]
print diff_times
liste = [1,3,8]
difference = []
for i in range(len(liste)-1):
diffs = abs(liste[i] - liste[i+1])
difference.append(diffs)
print difference