【发布时间】:2021-07-17 06:20:15
【问题描述】:
我的代码中有以下函数的缩写:
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 的初始给定值计算两个数组,然后执行条件,根据它,我更改 s 的值,并且我希望重新运行基于之前的整个代码关于 s 的新值。 (我有一个循环,每次整个数据都发生变化)
其实是一个巨大的代码,我不想重写3次,一次计算平均值,if条件下,else条件下。
有没有办法告诉 python 在 if-else 条件下重新运行整个前一部分。
【问题讨论】:
-
您可以使用一个函数并返回您需要的数据。在这种情况下,您似乎只使用
velo_mask?
标签: python arrays numpy loops if-statement