【20211115】【Python】ValueError: math domain error 报错原因及解决办法
·
这个问题源于工作中编写的一个功率值转 dB 值的函数,函数输入存在 0 值,而 0 取对数是无意义的!
一、报错原因
Python 中报错 “math domain error” 通常是由于某些操作不符合数学定义,如:对非正数取对数、对负数开方等等。
二、解决办法
把 0 替换成一个很小的正数,该问题解决~
三、举个栗子
import math
# 功率值转dB值
def fun_pow2db(data_pow, n_dim):
if n_dim == 0:
data_db = 10 * math.log10(data_pow)
elif n_dim == 1:
data_db = list(map(lambda x: 10 * math.log10(x), data_pow))
return data_db
a_pow = [0, 0, 200, 250, 100, 120]
print(fun_pow2db(a_pow, 1))
更多推荐
已为社区贡献6条内容
所有评论(0)