创建差异数组的简明方法(来自数组)

时间:2015-09-30 20:20:11

标签: python arrays numpy pandas

假设我有一个数字数组,我想创建一个新数组,它是连续元素之间的差异。 (我希望这个问题的答案能够推广到除差分之外的其他函数!)

有简洁的方法吗?常规Python实现和Numpy / Pandas驱动的实现的解决方案将不胜感激!

不那么简洁的方式:

for index in range(len(array)):
    if index < len(array) - 1:
        differences.append(array[index+1]-array[index])

2 个答案:

答案 0 :(得分:3)

如果您正在使用Numpy,请务必使用np.diff。数组理解方法虽然优雅和pythonic(对于python数组)对于大规模数据集来说太慢了。

一般来说,Numpy的经验法则是:&#34;如果它有用,或者其他人想要它,它可能在Numpy&#34;

答案 1 :(得分:1)

differences = [array[index+1]-array[index] for index in range(len(array))-1]

这是一个&#34; list comprehension&#34;,是Python的强大功能之一。当它们直接处理列表元素而不是索引时,它们会更有用,但是这个示例接近原始代码。