You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带逗号的科学计数数字符串转为浮点数以绘制DSC数据?

解决DSC数据读取时的字符串转浮点数问题

问题核心是你的数据文件用**逗号(,)作为小数点分隔符,但np.loadtxt默认只识别点(.)**作为小数点,导致解析失败。以下是两种实用解决方法:

方法一:用numpy的converters参数自定义转换

写一个简单的转换函数,把字符串里的逗号替换成点再转浮点数,然后指定给需要处理的列(列索引从0开始,这里t、Heatflow、Tr对应列1、2、3):

import numpy as np

def comma_to_float(s):
    # numpy加载时会传字节串,先解码再替换
    return float(s.decode('utf-8').replace(',', '.'))

filename = 'HA_A001_PBS.txt'
# 对列1、2、3应用转换函数,列0是整数无需处理
data = np.loadtxt(filename, skiprows=2, converters={1: comma_to_float, 2: comma_to_float, 3: comma_to_float})
Temp = data[:,3]
HeatFlow = data[:,2]

方法二:用pandas简化读取(推荐)

pandas的read_csv原生支持指定小数点分隔符,处理这类带空格分隔的表格数据更省心:

import pandas as pd

filename = 'HA_A001_PBS.txt'
# sep='\s+'表示用任意数量空白字符分隔列,decimal=','指定逗号为小数点
df = pd.read_csv(filename, skiprows=2, sep='\s+', decimal=',')
# 提取数据转成numpy数组(按需使用)
Temp = df['Tr'].values
HeatFlow = df['Heatflow'].values

内容的提问来源于stack exchange,提问作者Hugo Aalders

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:55:15