经过多次修改后,我终于拿出一段代码来获取相同列表中每个整数之间的差异,并将它们转储到一个新列表中。这是我的代码:
ints = [3, 5, 9, 15, 36]
difs = []
h = 0
while h < len(ints) - 1:
difs.append(ints[1 + h] - ints[0 + h])
h = h + 1
print difs
运行时,列表'difs'包含[2,4,6,21](即'int'列表中整数之间的差异。
我的问题:是否有更简单的功能 - 也许是numpy - 自动执行此操作?
答案 0 :(得分:4)
numpy
中有一项功能:numpy.diff()。
>>> import numpy
>>> numpy.diff([3, 5, 9, 15, 36])
array([ 2, 4, 6, 21])
答案 1 :(得分:2)
将列表理解与zip
一起使用:
>>> ints = [3, 5, 9, 15, 36]
>>> [b-a for a, b in zip(ints, ints[1:])]
[2, 4, 6, 21]
答案 2 :(得分:1)
是的,numpy中有一个函数diff()。 它可以像这样使用......
ints = [3, 5, 9, 15, 36]
x = numpy.array(ints)
numpy.diff(x)
输出:
[2, 4, 6, 21]
您还可以使用相同的函数在函数中使用axis参数获取两个列表之间的差异。