如何将"[nan,1,2,3]"字符串转换为列表 [nan,1,2,3]?



如何将"[nan,1,2,3]"字符串转换为列表[nan,1,2,3]

如果我使用

from ast import literal_eval
literal_eval("[1,2,3]")

我得到

[1, 2, 3]

但是,如果我尝试转换带有nan的字符串,则会发生以下错误:

File "<unknown>", line 1
[nan  1  2  3
^
SyntaxError: invalid syntax
Process finished with exit code 1

尝试使用np.fromstring

前任:

import numpy as np
lst = '[nan  1  2  3]'
print(np.fromstring(lst.strip("[]"), sep=' '))
#-->[nan  1.  2.  3.]

你可以用None有效的python替换NaN,然后使用literal_eval

s = "[nan,1,2,3]"
literal_eval(s.replace('nan', 'None'))
# [None, 1, 2, 3]

如果你愿意使用 numpy,你可以对浮点数使用隐式类型转换(注意,对于整数,没有 nan(

import numpy as np    
a = "[nan 1 2 3]"
np.array(a[1:-1].split(), dtype="f")
#array([nan,  1.,  2.,  3.], dtype=float32)

使用numpy.fromstring

>>> s = '[nan, 1, 2, 3]'
>>> import numpy as np
>>> a = np.fromstring(s[1:-1], sep=', ')
>>> a
array([ nan,   1.,   2.,   3.])
>>> 

最新更新