Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串列表转换为浮点数组_Python_Python 3.x - Fatal编程技术网

Python 将字符串列表转换为浮点数组

Python 将字符串列表转换为浮点数组,python,python-3.x,Python,Python 3.x,我有一个字符串列表,如下所示: ['0.20115899', '0.111678', '0.10674', '0.05564842', '-0.09271969', '-0.02292056', '-0.04057575', '0.2019901', '-0.05368654', '-0.1708179'] ['-2.17182860e-01', '-1.04081273e-01', '7.75325894e-02', '7.51972795e-02', '-7.11168349e-02', '

我有一个字符串列表,如下所示:

['0.20115899', '0.111678', '0.10674', '0.05564842', '-0.09271969', '-0.02292056', '-0.04057575', '0.2019901', '-0.05368654', '-0.1708179']
['-2.17182860e-01', '-1.04081273e-01', '7.75325894e-02', '7.51972795e-02', '-7.11168349e-02', '-4.75254208e-02', '-2.94160955e-02']
etc.
etc.
列表的名称是
data\u det
。我执行了以下操作以查找类型:

for item in data_det:
      print(type(item))
      for it in item:
           print(type(it))
我得到

但我得到了一个错误:

return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.

理想情况下,我希望每个值都转换为float。如何做到这一点

关于我和你的评论。因为您说过您的数据是列表的列表格式。您需要遍历列表

您可以使用
np.float
设置传入浮点类型的值。使用
dtype=object
设置任意类型

import numpy as np

# Traverse list of list
def traverse(o, tree_types=(list, tuple)):
    if isinstance(o, tree_types):
        for value in o:
            for subvalue in traverse(value, tree_types):
                yield subvalue
    else:
        yield o

# Your data
values = [('0.20115899', '0.111678'), ('0.211282', '0.342342')]
# Traverse data list of list
values = traverse(values)
# Loop through new values
x = np.asarray([float(value) for value in values], np.float)
# Output
print(x)

关于我和你的评论。因为您说过您的数据是列表的列表格式。您需要遍历列表

您可以使用
np.float
设置传入浮点类型的值。使用
dtype=object
设置任意类型

import numpy as np

# Traverse list of list
def traverse(o, tree_types=(list, tuple)):
    if isinstance(o, tree_types):
        for value in o:
            for subvalue in traverse(value, tree_types):
                yield subvalue
    else:
        yield o

# Your data
values = [('0.20115899', '0.111678'), ('0.211282', '0.342342')]
# Traverse data list of list
values = traverse(values)
# Loop through new values
x = np.asarray([float(value) for value in values], np.float)
# Output
print(x)
试试这个:

import numpy as np
l1 = ['0.20115899', '0.111678', '0.10674', '0.05564842', '-0.09271969', '-0.02292056', '-0.04057575', '0.2019901', '-0.05368654', '-0.1708179']
l2 = ['-2.17182860e-01', '-1.04081273e-01', '7.75325894e-02', '7.51972795e-02', '-7.11168349e-02', '-4.75254208e-02', '-2.94160955e-02']

l1 = np.array([float(i) for i in l1])
l2 = np.array([float(i) for i in l2])
print(l1.dtype)
输出

float64
试试这个:

import numpy as np
l1 = ['0.20115899', '0.111678', '0.10674', '0.05564842', '-0.09271969', '-0.02292056', '-0.04057575', '0.2019901', '-0.05368654', '-0.1708179']
l2 = ['-2.17182860e-01', '-1.04081273e-01', '7.75325894e-02', '7.51972795e-02', '-7.11168349e-02', '-4.75254208e-02', '-2.94160955e-02']

l1 = np.array([float(i) for i in l1])
l2 = np.array([float(i) for i in l2])
print(l1.dtype)
输出

float64

x=np.array([value-for-value-in-values],np.float)
试试看。值是字符串。请在问题中添加
数据\u det
的外观like@Raymond这不是一个单一的清单。这是一个列表。@GravityMass 1秒。然后你需要遍历一个列表。
x=np.array([value-for-value-in-values],np.float)
试试看。值是字符串。请在问题中添加
数据\u det
的外观like@Raymond这不是一个单一的清单。这是一个列表。@GravityMass 1秒。然后,您需要遍历列表的列表。