python 工具 字符串轉numpy浮點數組

不一樣的數字之間使用 空格「 」,「$」,"*"等隔開,支持帶小數點的字符串
NumArray=str2num(LineString,comment='#')
將字符串中的全部非Double類型的字符所有替換成空格
 以'#'開頭直至行尾的內容被清空
 返回一維numpy.array數組數組

import numpy
import scipy
def str2num(LineString,comment='#'):
 
    from io import StringIO as StringIO
    import re,numpy
 
    NumArray=numpy.empty([0],numpy.int16)
    NumStr=LineString.strip()
    #~ ignore comment string
    for cmt in comment:

        CmtRe=cmt+'.*$'
        NumStr=re.sub(CmtRe, " ", NumStr.strip(), count=0, flags=re.IGNORECASE)
 
    #~ delete all non-number characters,replaced by blankspace.
    NumStr=re.sub('[^0-9.e+-]', " ", NumStr, count=0, flags=re.IGNORECASE)
 
    #~ Remove incorrect combining-characters for double type.
    NumStr=re.sub('[.e+-](?=\s)', " ", NumStr.strip(), count=0, flags=re.IGNORECASE)
    NumStr=re.sub('[.e+-](?=\s)', " ", NumStr.strip(), count=0, flags=re.IGNORECASE)
    NumStr=re.sub('[e+-]$', " ", NumStr.strip(), count=0, flags=re.IGNORECASE)
    NumStr=re.sub('[e+-]$', " ", NumStr.strip(), count=0, flags=re.IGNORECASE)
 
    if len(NumStr.strip())>0:
        StrIOds=StringIO(NumStr.strip())
        NumArray= numpy.genfromtxt(StrIOds)
 
    return NumArray


if __name__ == "__main__":
    str = input("Enter your input: ");
    donser=str2num(str)
    print(donser)
相關文章
相關標籤/搜索