我在使用python初始化数组时遇到了问题。我一直在试图寻找解决方案,但我没有找到任何东西。 (可能是我搜索了错误的关键字)。 无论如何,这是我想要实现的: 我正在为机器视觉应用程序编写一个python脚本。该应用程序由几个“工具”组成,它们按照其有序顺序迭代运行。我正在编写的一个Python脚本。在这个脚本中,我需要创建一个数组类型变量,每次迭代都会删除第一个值并在最后附加一个新值。由于它需要记住迭代之间的数组,它是否必须是全局的? 问题是我需要在脚本的开头将变量定义为数组。为此,我使用: xPosition_array = [] 在脚本后面,我附加了一个值。但是,下一次迭代 xPosition_array = [] 将会用空的覆盖数组。 我该如何制作代码,使得数组仅被定义/初始化一次(第一次迭代)?pythonscript,为每次迭代初始化数组和存储值
在此先感谢。
的代码:
global xPosition_array
xPosition_array = []
filter_win_len = 40
def moving_average(a, n) :
ret = np.cumsum(a, dtype=float)
ret[n:] = ret[n:] - ret[:-n]
return ret[n - 1:]/n
xPosition = GetValue('LocatexPos.Line[1]_q_x')
if len(xPosition_array) < filter_win_len:
xPosition_array.append(xPosition)
elif len(xPosition_array) == filter_win_len:
xPosition_array.pop(0)
xPosition_array.append(xPosition)
xPosition_filtered = moving_average(xPosition_array, filter_win_len)
感谢您的快速回复,泰勒!您提出的解决方案完全符合我的要求。 – John
没问题约翰,很高兴我能帮忙! –