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

时间:2018-03-09 00:04:59

标签: python numpy

矩阵中有许多正数和负数,我想通过符号记录所有数字的日志,这意味着:对于正数,只需直接记录,对于负数,也许我们可以将它们改为正数,拿日志,然后改回负面? 当我使用np.log10时,负数将为Nah。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要获取数组绝对值的日志,然后获取原始数组为负数的日志,则反转日志值的符号。如果我不对,请告诉我。对于日志函数的定义,我不确定这些数字实际上有多大意义...

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

给出数组:

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

导致:

>>> logs
array([-1.76702751, -0.20331112, -0.21635008, -0.98257868, -1.37539009,
    0.28472216, -0.14198109, -1.01503591, -0.18637648, -0.39536358])