我有点想通过将数据帧的向量转换为str
将自己描绘在角落。我的向量现在看起来像[ -9.1676396 -171.8196878]
。问题在于,它们以某种方式失去了中间的逗号,就像以前的[ -9.1676396, -171.8196878]
一样。然后,每当我需要列表转换时,我都可以做:
literal_eval('[ -9.1676396, -171.8196878]')
但是,由于我失去了逗号,因此该方法不再有效。我的问题是,如何在列表中转换这样的字符串?我还必须考虑到一些间距可能不同的事实。这是我可以进行的修改类型:
[ -9.1676396 -171.8196878 ]
[1.2904753 103.8520359]
[ 21.2160437 -157.975203 ]
答案 0 :(得分:2)
看起来不再有字符串了,只是一个数组。
我建议您使用正则表达式
import re
pattern = "/[\s" #replace spaces on outside of numbers if any
replace = "" # i.e nothing
re.sub(pattern, replace)
然后再次执行相同的操作,但是正则表达式模式将是
re.sub([0-9]*\s[0-9]* , ",")
答案 1 :(得分:1)
如果您有这样的一行:
[ -9.1676396 -171.8196878 ]
可以通过以下代码轻松将其转换为浮点数列表:
[float(x) for x in '[ -9.1676396 -171.8196878]'.replace('[','').replace(']','').split()]
此代码删除了[
和]
符号,使用空格分隔行作为分隔符,并将生成的字符串部分转换为浮点数。