我是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]))
我有什么方法可以做到这一点吗?
答案 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])