如何用 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.log
。 math.log
无法计算数组的对数但 numpy 可以。
我想用 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.log
。 math.log
无法计算数组的对数但 numpy 可以。