计算Python2.7中列表最后X个元素的平均值
是否有一种优雅的方法或函数来计算列表中最后X个元素的平均值 我有一个列表计算Python2.7中列表最后X个元素的平均值,python,numpy,mean,Python,Numpy,Mean,是否有一种优雅的方法或函数来计算列表中最后X个元素的平均值 我有一个列表寄存器,它在每次迭代时都会增加: register = np.append(register, value) 我想创建另一个列表,其中I元素对应于X寄存器中最后一个元素的平均值 register_mean[i] = np.mean(register[i-X:i]) 棘手的部分是第一次X迭代,此时register中还没有X值。对于这些特定情况,我希望它计算寄存器的第一个值的平均值,并仅将寄存器的第一个值作为寄存器_mean
寄存器
,它在每次迭代时都会增加:
register = np.append(register, value)
我想创建另一个列表,其中I
元素对应于X
寄存器中最后一个元素的平均值
register_mean[i] = np.mean(register[i-X:i])
棘手的部分是第一次X
迭代,此时register
中还没有X
值。对于这些特定情况,我希望它计算寄存器
的第一个值的平均值,并仅将寄存器
的第一个值作为寄存器_mean
的第一个值
这可以在迭代过程中完成,也可以在寄存器完成后完成
我知道有很多类似的问题,但还没有找到一个能回答这个问题的
可能是像这样简单的事情吗
if X < i:
register_mean[i] = np.mean(register[:i])
如果X
这只是平均之前有多少点,直到你有足够的平均X点
也许我误解了你的意图 可能是像这样简单的事情吗
if X < i:
register_mean[i] = np.mean(register[:i])
如果X
这只是平均之前有多少点,直到你有足够的平均X点
也许我误解了你的意图 如果我正确理解了您的问题,这应该可以完成以下工作:
X = 4 # Span of mean
register_mean = [np.mean(register[max(i-X, 0): max(i-X, 0) + 1]) for i in range(len(register))]
它将在i-X
和i
之间创建寄存器
元素的移动平均值;但是,每当i-X
为负值时,它将只取0
和i+1
之间的值。如果我正确理解了您的问题,这应该可以完成以下工作:
X = 4 # Span of mean
register_mean = [np.mean(register[max(i-X, 0): max(i-X, 0) + 1]) for i in range(len(register))]
它将在i-X
和i
之间创建寄存器
元素的移动平均值;然而,每当i-X
为负值时,它将只取0
和i+1
之间的值。你能给我们一个可以运行的示例代码段吗?你能给我们一个可以运行的示例代码段吗?实际上,如果你只是在列表中添加,你甚至不需要[:i]。列表的长度实际上是i,如果您只是添加到列表中,您甚至不需要[:i]。该列表的长度是:指定从寄存器中选取值的范围的上限不应该是max(i,0)+1
?指定从寄存器中选取值的范围的上限不应该是max(i,0)+1
?