python中的一个命令行,用于自动化代码

时间:2016-03-02 21:15:11

标签: python function machine-learning

我是Python的新手。我在脑电图中用它来进行机器学习。 这是我提取“功能”的功能。 有没有办法改善它?我的意思是,每次我需要其他范围时,我都不想改变频率。所以,在B部分,你会看到我的尝试。

第A部分

def computePowerBands(f, amp):
    return (np.mean(amp[(f >= 0.5)*(f <= 4.5)]),
            np.mean(amp[(f >= 4.5)*(f <= 8.5)]),
            np.mean(amp[(f >= 8.5)*(f <= 11.5)]),
            np.mean(amp[(f >= 11.5)*(f <= 15.5)]),
            np.mean(amp[(f >= 15.5)*(f <= 32.5)]) )

B部分

def computePowerBands(f, amp, fce):
    return (np.mean(amp[k * k for k in fce]))

我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

我不完全确定你要实现的是什么,因为它实际上是代码模糊,但通过简单的代码重构,你可以通过对列表对它进行参数化:

def computePowerBands(f, amp, fce):
    return [np.mean(amp[(f >= low)*(f <= up)]) for low, up in fce]

并用

调用它
computePowerBands(f, amp, [(0.5, 4.5), (4.5, 8.5)])

等等。

或者如果以下乐队总是分享结尾:

def computePowerBands(f, amp, fce):
    return [np.mean(amp[(f >= fce[fid])*(f <= fce[fid+1])])
            for fid in range(len(fce)-1)]

并用

调用它
computePowerBands(f, amp, [0.5, 4.5, 8.5])