python中的一条命令行,用于自动化cod

2024-04-25 04:38:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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]))

有什么办法我能做到吗?你知道吗


Tags: 功能机器forreturndefnp特征mean
1条回答
网友
1楼 · 发布于 2024-04-25 04:38:02

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

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])

相关问题 更多 >