【发布时间】:2013-04-01 00:30:46
【问题描述】:
我正在尝试加速以下 python 代码:
for j in range(4,len(var_s),3):
mag_list.append(float(var_s[j]))
mag_list = [value for value in mag_list if value != 99.]
med_mag = np.median(mag_list)
有没有一种将两个 for 循环合并为一个的好方法?这种方式,真的很慢。我需要的是从 var_s 列表中提取每三个条目,从五分之一开始,如果该条目的值不等于 99。在结果列表中,我需要中位数。 谢谢!
【问题讨论】:
-
med_mag = np.median([v for v in map(float, var_s[4::3]) if v != 99])。不确定这是否更快,但它更短。 -
各种
var_s是什么数据类型?你真的需要从每一个中构造一个浮点数吗? -
你有一个样本数据集来做一些基准测试吗?你有我的好奇心 =)
-
我同意@TomasLycken——如果我有一些样本数据,我会做一些基准测试/测试:)
标签: python performance for-loop