Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于在数组元素内进行减法的循环_Python_For Loop_Numpy - Fatal编程技术网

Python 用于在数组元素内进行减法的循环

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

我是一个使用Python和Numpy的新手。 我认为这很简单,而且可能是。 我有一系列的时间。
例如:

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