【问题标题】:python log() function TypeErrorpython log() 函数类型错误
【发布时间】:2016-07-03 06:15:06
【问题描述】:

我有一个名为“sales”的数据集,它是一个 SFrame。 有一个名为“sqft_living”的列,我想将其转换为对数值。列的数据类型是浮点数。但是当我尝试用 log() 函数转换它时,它会询问一个浮点数,尽管它已经是一个浮点数。 这是代码和错误的屏幕截图。你能帮我找到问题并将列转换为日志吗

a=train_data['sqft_living']
a

result of a
dtype: float
Rows: 17384
[1180.0, 2570.0, 770.0, 1960.0,...]

这表明“a”是浮动的

然后我使用下面的代码将日志值转换为名为“log_sqft_living”的新列

train_data['log_sqft_living']= log(a)

但它给出了以下错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-6de995ee575f> in <module>()
----> 1 train_data['log_sqft_living']= log(a)

TypeError: a float is required

【问题讨论】:

  • 请不要张贴代码或输出为图片。几个月后,该图像可能会消失,然后您的问题对处于相同情况的其他任何人都没有帮助。请编辑您的问题以包含您的 IPython 会话的文本。
  • a 是一个列表。不是浮子。请不要包含图片。将所有代码粘贴到此处。
  • 非常感谢您的回复。我已经编辑了帖子。任何帮助将不胜感激

标签: python ipython sframe


【解决方案1】:

numpy.log 可以与数组一起使用

>>> import numpy
>>> a = numpy.array([180.0, 2570.0, 770.0, 1960.0])
>>> b = numpy.log(a)
>>> b
array([ 5.19295685,  7.85166118,  6.64639051,  7.58069975])

【讨论】:

    【解决方案2】:

    在您的示例中,a 是一个浮点类型的 SArray。它不能传递给任何采用浮点数的函数。但是,您可以像这样将任何带浮点数的函数应用于 SArray:

    import math
    log_a = a.apply(math.log)
    

    【讨论】:

      【解决方案3】:

      使用 Python shell 在 Windows 10 上使用 Python 3.5

      正如 Rahul 所指出的,a 是一个列表。
      您可以获取列表中的一个元素,如下所示,它会起作用:

      >>> import math
      >>> train_data=[12.1, 14.5, 56.5, 43.2]
      >>> a=train_data
      >>> a
      [12.1, 14.5, 56.5, 43.2]
      >>> another_train_data=math.log(a[1])
      >>> another_train_data
      2.6741486494265287
      >>> 
      

      【讨论】:

      • 不客气。如果您觉得我的回复有用,请点赞。谢谢。
      【解决方案4】:

      如果你需要获取 SFrame 的日志,你需要这样做:

      from math import log train_data['sqft_living'].apply(log)

      【讨论】:

        猜你喜欢
        • 2012-09-27
        • 2018-01-13
        • 2015-10-26
        • 2023-03-17
        • 1970-01-01
        • 2021-08-04
        • 2018-04-28
        • 2019-02-14
        • 2021-10-02
        相关资源
        最近更新 更多