python - 处理移动平均线中的零

标签 python numpy average zero

编辑

我原来的帖子不是最好的解释,所以我重写了它。

所以我想做的是计算一组数据的移动平均值。取每个平均值,例如 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值。

如果有人可以提供帮助,那就太好了,但我想要建议的主要问题是:

Is there a function that will select N values that are not zero or one?

最佳答案

1) 你能更具体地说明一下你正在做的事情吗?你的集合是什么样的,你有什么对象,容器的类型是什么(数组,集合,...)

2)您可以处理第二个“集”,您可以使用拥有的非零值进行更新

3) 如果 2) 太麻烦,您可以随时随机选择 N * 1.1 对象,并尝试在其中找到 N 个非零对象并重复,按照您的建议。对我来说这似乎也是一个很好的函数算法,没有什么问题,不用担心

关于python - 处理移动平均线中的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18757921/

相关文章:

python - flask sqlalchemy。提交不保存更改

python - 如何为在 tensorflow 中处理复杂张量的自定义操作定义梯度?

python - 整理 Pandas 的实验结果

python - 哪个更快?检查某个东西是否在 Python 列表中? IE。成员(member)与非成员(member)

python - 按值对 Numpy 数组元素进行排序

python - numpy 中的对角线数组

Python:查找每个月的平均股票值(value)

mysql - 选择 ID 的平均评分介于

mysql - 分别计算唯一日期的平均计数

python - 如何将 groupby 结果分配给 pandas 中的系列