网络编程
位置:首页>> 网络编程>> Python编程>> python 工具 字符串转numpy浮点数组的实现

python 工具 字符串转numpy浮点数组的实现

作者:未名亚柳  发布时间:2023-07-15 20:37:16 

标签:python,字符串,numpy,浮点数组

不同的数字之间使用 空格“ ”,“$”,"*"等隔开,支持带小数点的字符串

NumArray=str2num(LineString,comment='#')

将字符串中的所有非Double类型的字符全部替换成空格

以'#'开头直至行尾的内容被清空

返回一维numpy.array数组

python 工具 字符串转numpy浮点数组的实现


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)

补充知识:Python 将numpy array由浮点型转换为整型

——使用numpy中的astype()方法可以实现,如:

python 工具 字符串转numpy浮点数组的实现

来源:https://www.cnblogs.com/dzzy/p/9399487.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com