【问题标题】:How can i convert (-0.143704570332567-1.2618680524722614j) to something sklearn fit method can use?我如何将(-0.143704570332567-1.2618680524722614j)转换为 sklearn fit 方法可以使用的东西?
【发布时间】:2020-10-03 21:47:54
【问题描述】:

我必须将包含此类值的列:(-0.143704570332567-1.2618680524722614j) 转换为 sklearn 中的 fit 方法可以使用的东西。

我得到这个错误:

ValueError:无法将字符串转换为浮点数:'(-0.17904283086526662-1.0019223461852513j)'

当我使用时:self.model.fit(self.X_train, self.y_train)

【问题讨论】:

  • 这是一个复数。你想如何使用它?它从哪里来的?除了你之外,没有人可以为你回答这个问题。
  • @JanChristophTerasa 我得到的值是 FFT 函数的第一个组件。使用以下方法生成它: self.vector_of_fft_components = np.fft.fft(self.IAT_vector, n = 11) 并使用 outstring = '\t'.join([ str(flow.vector_of_fft_components[1])]) f 写入 csv .write(outstring+'\n')。我需要将此值用于我的逻辑回归分类器,但“fit”方法不能像这样使用它。

标签: python pandas machine-learning scikit-learn logistic-regression


【解决方案1】:

首先从字符串转换为复数,然后可以将列拆分为实部和虚部。适合这两个变量应该没有问题,因为它们现在是浮点类型。

df['re'] = df.complex.map(lambda x: complex(x).real)
df['imag'] = df.complex.map(lambda x: complex(x).imag)             
                                  complex        re      imag
0  -0.143704570332567-1.2618680524722614j -0.143705 -1.261868

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 2016-12-20
    • 2016-01-01
    • 2015-03-31
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多