gpt4 book ai didi

python - 属性错误 : 'numpy.float64' object has no attribute 'log10'

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:16 26 4
gpt4 key购买 nike

我正在尝试使用 sklearn.LinearRegression 找到大量短序列的对数斜率。数据是从 pandas 数据框的行中提取的,看起来像:

bp01    1.12
bp02 1.12
bp03 1.08
bp04 0.99
bp05 1.08
bp06 1.19
bp07 1.17
bp08 1.05
bp09 0.8
bp10 0.96
bp11 0.97
bp12 1.12
bp13 0.91
bp14 0.96
bp15 1.05
bp16 0.93
bp17 0.97
bp18 0.92
bp19 0.89
bp20 0
Name: 42029, dtype: object

但是,当我尝试在系列中使用 np.log10 时,出现以下错误:

In[27]: test.apply(np.log10)
Traceback (most recent call last):

File "<ipython-input-27-bccff3ed525b>", line 1, in <module>
test.apply(np.log10)

File "C:\location", line 2348, in apply
return f(self)

AttributeError: 'numpy.float64' object has no attribute 'log10'

我不确定为什么会出现此错误,np.log10应该与我所看到的 numpy.float64 一起工作。想法?

最佳答案

numpy.log10 是一个“ufunc”,Series.apply(func) 方法对 numpy ufuncs 进行了特殊测试,这使得 test.apply (log10) 相当于 np.log10(test)。这意味着 test,一个 Pandas Series 实例,被传递给 log10test的数据类型是object,也就是说test中的元素可以是任意的Python对象。 np.log10 不知道如何处理这样的对象集合(它不知道这些对象实际上是所有 np.float64 实例),因此它会尝试将计算分派(dispatch)给 Series 中的各个元素。为此,它希望元素本身具有 log10 方法。这就是错误发生的时候:Series 中的元素(在本例中为 np.float64 实例)没有 log10 方法。

应该做你想做的几个替代表达式是 np.log10(test.astype(np.float64))test.astype(np.float64).apply(np .log10)。本质部分是 test.astype(np.float64)Series 对象的数据类型从 object 转换为 np. float64.

关于python - 属性错误 : 'numpy.float64' object has no attribute 'log10' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47208473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com