编辑
我原来的帖子不是最好的解释,所以我重写了它。
所以我要做的是计算一组数据的移动平均值。例如,每个平均值都会被 24 个值取代。但是,我有两个条件需要在我当前的函数中进行更改。
- 取 24 个不为零的值的平均值,因为零被认为是坏数据,所以我想要 24 个“好”值作为平均值。
- 如果有五个连续的零,我不想取平均值而简单地说平均值为零。
我需要这是我当前的功能,但它需要更新以包含这些更改。
def averaged_rel_track(navg, rel_values, nb):
'''function to average the relative track values for each blade. This is
dependant on the number values specified by the user to average over in a
rolling average'''
avg_rel_track=[]
for blade in range(0,int(nb)):
av_values=[]
rel_blade=rel_values[:,int(blade)]
for rev in range(0,len(rel_blade)):
section=rel_blade[rev-int(navg)+1:rev+1]
print section
if np.any(section==0):
av_value=0
else:
av_value=np.sum(section)/int(navg)
print av_value
av_values.append(av_value)
avg_rel_track.append(av_values)
avg_rel_track=np.array(avg_rel_track)
return avg_rel_track.transpose()
目前有很多检查涉及。
是否有可以选择 X 个非零/无值的功能?目前我正在尝试做的工作是这样的:
Select a section of data than is N values long
x= number of zeros/nan's in the data
Extend section by x values
但这不起作用,因为我需要检查新部分是否不包含零,并且它会检测到原始零。我可以检查扩展是否为零,重复该过程,但这似乎是一种非常冗长的方法。
我知道scipy.stats.nanmean
在平均数据时会忽略 none 值。
如果有人可以提供帮助,那就太好了,但我想建议的主要问题是:
是否有一个函数可以选择 N 个不为零或一的值?