如何用 Python 进行对数计算?

How to do a calculation with Python with logarithm?

我想用 math.log() 计算一些值,但它不起作用,我不知道为什么。 这是我的第一个代码:

import os
os.getcwd()
import pandas as pd
import loaddata as ld
import symmetryvalues as sv
import numpy as np

#%% Laden der Daten für Symmetriewerte
dataListStep = ld.loadData("../data/mpi/onlycsv/StepData")
indexStepData = 1
stepData = dataListStep[indexStepData]

leftMean = np.asarray([stepData.iloc[:, i].mean() for i in range(0, 5)])
rightMean = np.asarray([stepData.iloc[:, i].mean() for i in range(5, 10)])

#%% Calculation of Mean Values
dataFrameStepLeftMean = pd.DataFrame({'leftMean': leftMean})
dataFrameStepRightMean = pd.DataFrame({'rightMean': rightMean})
#
symGaitAsym = sv.gaitAsymmetry(dataFrameStepLeftMean.leftMean, dataFrameStepRightMean.rightMean)
print("Das Ergebnis für Gait Asymmetry über die Mittelwerte lautet: " +str(symGaitAsym))

公式代码如下:

import math as m

def gaitAsymmetry(L, R):
    r = (m.log(R/L))*100
    return r

这是我的输出错误:

raise TypeError("cannot convert the series to " "{0}".format(str(converter)))
TypeError: cannot convert the series to <class 'float'>

我的测试数据是:

数据=“”

1.00,0.80,0.40,0.20,0.50,1.20,0.90,0.30,0.20,0.34

1.10,0.85,0.50,0.21,0.59,1.30,0.95,0.40,0.21,0.42

0.90,0.90,0.45,0.23,0.50,1.10,1.00,0.35,0.23,0.35

1.05,0.70,0.40,0.28,0.57,1.25,0.80,0.30,0.28,0.38

0.95,0.75,0.45,0.30,0.60,1.15,0.85,0.35,0.30,0.42

"""

有人可以解释一下问题是什么以及我该如何解决吗?谢谢你帮助我。

使用 numpy.log 而不是 math.logmath.log 无法计算数组的对数但 numpy 可以。