Python 将多个数字字符串数组转换为浮点数组

Python 将多个数字字符串数组转换为浮点数组,python,python-3.x,regex,pandas,numpy,Python,Python 3.x,Regex,Pandas,Numpy,我从文本文件中读取一些数据,并将它们放入具有以下格式的数组中: ['-1.92784 -1.28125 0.1'...'-1.92784 -1.35417 0.1' '-1.92784 -1.42708 0.1'] [ ... [-1.92784 -1.35417 0.1 ] [-1.92784 -1.42708 0.1 ] ... ] 我希望它的格式如下: ['-1.92784 -1.28125 0.1'...'-1.92784 -1.35417 0.1' '-1.9

我从文本文件中读取一些数据,并将它们放入具有以下格式的数组中:

['-1.92784 -1.28125 0.1'...'-1.92784 -1.35417 0.1' '-1.92784 -1.42708 0.1']
[
 ...
 [-1.92784 -1.35417  0.1    ]
 [-1.92784 -1.42708  0.1    ]
...
]
我希望它的格式如下:

['-1.92784 -1.28125 0.1'...'-1.92784 -1.35417 0.1' '-1.92784 -1.42708 0.1']
[
 ...
 [-1.92784 -1.35417  0.1    ]
 [-1.92784 -1.42708  0.1    ]
...
]
我不知道如何做到这一点,当我尝试将其转换为浮点时,我不断收到一个错误,它说:AttributeError:'str'对象没有属性'astype'

我知道,将我的文件作为csv加载到pandas中已经对我进行了这种格式化,但我不能这样做,因为我有其他文本,我必须解析并删除这些文本,以便只包含上面看到的值。我不相信我可以将正则表达式与pandas一起使用

感谢您的帮助

使用:

#original array
arr = np.array(['-1.92784 -1.28125 0.1', '-1.92784 -1.35417 0.1', '-1.92784 -1.42708 0.1'])
print (arr)
['-1.92784 -1.28125 0.1' '-1.92784 -1.35417 0.1' '-1.92784 -1.42708 0.1']
首先按空格拆分为嵌套列表列表:

L = [x.split() for x in arr]
print (L)
[['-1.92784', '-1.28125', '0.1'], 
 ['-1.92784', '-1.35417', '0.1'], 
 ['-1.92784', '-1.42708', '0.1']]
然后转换为二维数组,如果每个子列表中的元素相同:

arr1 = np.array(L).astype(float) 
print (arr1)
[[-1.92784 -1.28125  0.1    ]
 [-1.92784 -1.35417  0.1    ]
 [-1.92784 -1.42708  0.1    ]]
使用numpy.fromstring:

输出:

array([[-1.92784, -1.28125,  0.1    ],
       [-1.92784, -1.35417,  0.1    ],
       [-1.92784, -1.42708,  0.1    ]])

可以拆分该字符串数组中的每个元素,然后将结果转换为float。你可以将正则表达式与Pandasy一起使用你的意思是你有一个列表,而不是数组?Python中没有数组。