if-else条件python中的快捷方式
我的代码中有以下函数的缩写:if-else条件python中的快捷方式,python,arrays,numpy,loops,if-statement,Python,Arrays,Numpy,Loops,If Statement,我的代码中有以下函数的缩写: s = 0.5 m = np.nonzero((velo>freq-fthrow - s*maskwidth_f)) velo_mask = np.delete(velo, m) spec_mask = np.delete(spec, m) if (average(velo_mask<0.9): s = 0.8 m = np.nonzero((velo>freq-fthrow - s*maskwidth_f)) velo_mask = np.
s = 0.5
m = np.nonzero((velo>freq-fthrow - s*maskwidth_f))
velo_mask = np.delete(velo, m)
spec_mask = np.delete(spec, m)
if (average(velo_mask<0.9):
s = 0.8
m = np.nonzero((velo>freq-fthrow - s*maskwidth_f))
velo_mask = np.delete(velo, m)
spec_mask = np.delete(spec, m)
else:
s = 0.5
m = np.nonzero((velo>freq-fthrow - s*maskwidth_f))
velo_mask = np.delete(velo, m)
spec_mask = np.delete(spec, m)
s=0.5
m=np.非零((速度>频率fthrow-s*maskwidth_f))
速度掩码=np.删除(速度,m)
等级库掩码=np.删除(等级库,m)
if(平均值(速度-fthrow-s*maskwidth-f))
速度掩码=np.删除(速度,m)
等级库掩码=np.删除(等级库,m)
其他:
s=0.5
m=np.非零((速度>频率fthrow-s*maskwidth_f))
速度掩码=np.删除(速度,m)
等级库掩码=np.删除(等级库,m)
这意味着我必须首先基于s的初始给定值计算两个数组,然后执行条件,在此基础上,我更改s的值,并希望基于s的新值重新运行之前的整个代码。(我有一个循环,每次整个数据都会改变)
这实际上是一个巨大的代码,我不想重复写3次,一次计算平均值,在if条件下,和在else条件下
是否有一种方法可以告诉python在if-else条件下重新运行前面的整个部分。使用函数避免代码重复。例如:
def create_mask(velo, spec, freq, fthrow, maskwidth_f, s):
m = np.nonzero((velo > freq - fthrow - s * maskwidth_f))
velo_mask = np.delete(velo, m)
spec_mask = np.delete(spec, m)
return velo_mask, spec_mask
...
s = 0.5
velo_mask, spec_mask = create_mask(velo, spec, freq, fthrow, maskwidth_f, s)
s = 0.8 if average(velo_mask < 0.9) else 0.5
velo_mask, spec_mask = create_mask(velo, spec, freq, fthrow, maskwidth_f, s)
def创建掩码(速度、规格、频率、fthrow、掩码宽度、宽度):
m=np.非零((速度>频率-fthrow-s*maskwidth_f))
速度掩码=np.删除(速度,m)
等级库掩码=np.删除(等级库,m)
返回速度掩码、规格掩码
...
s=0.5
速度遮罩,规格遮罩=创建速度遮罩(速度,规格,频率,fthrow,maskwidth\u f,s)
s=0.8,如果平均值(速度掩码<0.9),否则为0.5
速度遮罩,规格遮罩=创建速度遮罩(速度,规格,频率,fthrow,maskwidth\u f,s)
您可以使用函数并返回所需的数据。在这种情况下,看起来您只使用了velo_mask
?