从字符串中提取数组

时间:2020-04-08 11:36:58

标签: python pandas

我有一个熊猫系列,其中包含:

[-3.86932793e + 02 1.82297039e + 01 -5.80108624e + 01 3.60803151e + 00 \ n -2.23173279e + 01 -1.61694102e + 01 -1.91569713e + 01 -9.71229354e + 00 \ n 1.04943316e + 00 -2.32231360e + 00 -1.40624006e + 01 -7.31842760e + 00 \ n 9.68115460e + 00 2.42948531e + 01 5.64715091e + 00 2.08459357e + 00 \ n -8.29193170e + 00 -5.98514877e + 00 -5.60237828e + 00 5.11533863e + 00 \ n 4.24665522e + 00 2.44113892e + 00 -9.27428068e-01 2.42668658e + 00 \ n -1.29403291e + 00 -6.17909507e + 00 3.12809650e + 00 8.99939129e + 00 \ n 8.94010048e + 00 8.05541832 e + 00 5.60370916e + 00 -6.52764019e + 00 \ n -9.95711382e + 00 -2.02809827e-01 2.57034145e + 00 -3.20973926e + 00 \ n -9.36473473e + 00 -2.29672003e + 00 1.43961641e + 00 6.63567513 e + 00]

如何将其转换为可用于sklearn的数组?

2 个答案:

答案 0 :(得分:0)

您可以在熊猫系列中调用.tolist()来给您一个列表对象。 由于您将它与sklearn一起使用,因此您很可能需要一个numpy数组,因此也可以调用.to_numpy()来返回np.array。

答案 1 :(得分:0)

您可以实现这部分代码。

    import pandas as pd
    import numpy as np

    str_ = '[-3.86932793e+02 1.82297039e+01 -5.80108624e+01 3.60803151e+00\n 
           -2.23173279e+01 -1.61694102e+01 -1.91569713e+01 -9.71229354e+00\n 
            1.04943316e+00 -2.32231360e+00 -1.40624006e+01 -7.31842760e+00\n 
            9.68115460e+00 2.42948531e+01 5.64715091e+00 2.08459357e+00\n 
           -8.29193170e+00 -5.98514877e+00 -5.60237828e+00 5.11533863e+00\n 
            4.24665522e+00 2.44113892e+00 -9.27428068e-01 2.42668658e+00\n 
           -1.29403291e+00 -6.17909507e+00 3.12809650e+00 8.99939129e+00\n 
            8.94010048e+00 8.05541832e+00 5.60370916e+00 -6.52764019e+00\n 
           -9.95711382e+00 -2.02809827e-01 2.57034145e+00 -3.20973926e+00\n 
           -9.36473473e+00 -2.29672003e+00 1.43961641e+00 6.63567513e+00]'

    str_ = str_.replace('\n', '').replace(']', '').replace('[', '')

    str_.split(' ')

    array = [float(value) for value in str_.split(" ")]
相关问题