【问题标题】:Recursively substracting: myarray[i+1]-myarray[i]递归减法:array[i+1]-myarray[i]
【发布时间】:2020-03-23 21:35:51
【问题描述】:

我通常以这样一种方式计算列表或数组的迭代,即我经常将列表的 ith 元素减去下一个 ith+1

我指的操作是:

for i in range(len(myarray)-1): # number of columns -1
    newarray = myarray[i+1]-myarray[i]

数组也可以是一个列表。如果使用 pandas 系列,代码只是转换为mySeries.iloc[i+1,:] - mySeries.iloc[i,:],但一般程序不会改变。

我一直想知道是否有一种矢量化的方式或者只是一种更好的方式来进行这种操作,以提高代码的“外观”和效率。

【问题讨论】:

  • [myarray[i+1]-myarray[i] for i in range(len(myarray-1))],或[elem1-elem2 for elem1,elem2 in zip(myarray[1:], myarray)]。后者将创建一个myarray[1:] 列表,从而占用更多空间。
  • mySeries-mySeries.shift()

标签: python recursion computer-science


【解决方案1】:

您可以为此使用numpy

import numpy as np

myarray = np.array([1,2,3,4,5,6,78,95])

newarray = myarray[1:] - myarray[:-1]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-22
    • 2020-12-28
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2011-07-27
    • 2012-01-13
    相关资源
    最近更新 更多