簡體   English   中英

如何將“[nan,1,2,3]”字符串轉換為列表[nan,1,2,3]?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM