如何使用python通过符号获取整个矩阵的日志

如何使用python通过符号获取整个矩阵的日志,python,numpy,Python,Numpy,矩阵中有很多正数和负数,我想用符号来表示所有的数,这意味着:对于正数,直接取对数,对于负数,也许我们可以把它们改成正数,取对数,然后再改回负数? 当我使用np.log10时,负数将是Nah。如果我理解正确,您希望获取数组绝对值的日志,然后在原始数组为负数的情况下,反转日志值的符号。如果我错了,请告诉我。我不确定这些数字对于log函数的定义到底有多大意义 但如果这确实是你想要做的,这将实现你想要的: 给定阵列: arr = np.random.randn(10) array([ 0.017099

矩阵中有很多正数和负数,我想用符号来表示所有的数,这意味着:对于正数,直接取对数,对于负数,也许我们可以把它们改成正数,取对数,然后再改回负数?
当我使用np.log10时,负数将是Nah。

如果我理解正确,您希望获取数组绝对值的日志,然后在原始数组为负数的情况下,反转日志值的符号。如果我错了,请告诉我。我不确定这些数字对于log函数的定义到底有多大意义

但如果这确实是你想要做的,这将实现你想要的:

给定阵列:

arr = np.random.randn(10)

array([ 0.01709907, -1.5970228 ,  0.60764499,  0.10409295,  0.04213179,
   -0.51913205, -1.38669546,  0.0965971 ,  0.65106376, -2.48521279])
您可以使用以下方法应用我描述的转换:

logs = np.log10(np.abs(arr))
logs[arr < 0] = logs[arr < 0]*-1

首先取矩阵的绝对值;对结果应用
log10
。将其更改回负值是什么意思?对于log的定义来说,这些不是毫无意义的吗?我的意思是取我矩阵绝对值的log,对不起,我的表达模棱两可。
>>> logs
array([-1.76702751, -0.20331112, -0.21635008, -0.98257868, -1.37539009,
    0.28472216, -0.14198109, -1.01503591, -0.18637648, -0.39536358])