我在使用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
沒問題約翰,很高興我能幫忙! –