[英]How can I convert "[nan,1,2,3]" string to list [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.]
您可以將NaN
替換為有效的python None
,然后使用literal_eval
:
s = "[nan,1,2,3]"
literal_eval(s.replace('nan', 'None'))
# [None, 1, 2, 3]
使用numpy.fromstring
:
>>> s = '[nan, 1, 2, 3]'
>>> import numpy as np
>>> a = np.fromstring(s[1:-1], sep=', ')
>>> a
array([ nan, 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.