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)

 

转载于:https://www.cnblogs.com/dzzy/p/9399487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值