【发布时间】:2022-06-10 17:41:26
【问题描述】:
我有一个超大的numpy.float64 格式的数值列表,如果有inf 值,我想将每个值转换为0.0,并将其余元素解析为简单的浮点数。
这是我的代码,完美运行:
# Values in numpy.float64 format.
original_values = [np.float64("Inf"), np.float64(0.02345), np.float64(0.2334)]
# Convert them
parsed_values = [0.0 if x == float("inf") else float(x) for x in original_values]
但这很慢。有什么方法可以加快这段代码的速度吗?对map 或numpy 使用任何魔法(我对这些库没有经验)?
【问题讨论】:
-
有什么理由不使用 numpy 数组?
-
这能回答你的问题吗? Replace -inf with zero value
-
你为什么使用
list的numpy.float64对象???那真的是你所拥有的吗?请提供minimal reproducible example。type(original_values)是什么? -
几乎可以肯定,你在某个时候有一个
numpy.ndarray对象,你真的应该只是使用它。如果最后你需要list传递给 mongo,只需使用my_array.tolist() -
您发布的
original_list不是numpy.float64对象列表
标签: python arrays numpy dictionary list-comprehension