3 回答

TA贡献1874条经验 获得超12个赞
您的分隔符必须是逗号 ',' 而不是分号 ';'
编辑:问题是也有逗号,例如 1,25e+00 需要单独解析
def genfromtxt(file):
from io import BytesIO
with open(file, 'r') as f:
lines = ' '.join([s.replace(',', '.') for s in f.readlines()])
return np.genfromtxt(BytesIO(lines.encode('utf-8')), delimiter=';', dtype=np.float32)
这是我的解决方案

TA贡献1806条经验 获得超5个赞
您可以执行以下操作来转换逗号小数:
def conv(x):
return x.replace(',', '.').encode()
read = np.genfromtxt((conv(x) for x in open("x.csv")), delimiter=';')
>>> read
array([[120.4619 , 1.639486],
[121.4262 , 1.623145],
[122.3904 , 1.607553],
[123.3547 , 1.592153],
[124.3189 , 1.576472],
[125.2832 , 1.56022 ],
[126.2474 , 1.543355],
[127.2117 , 1.526069],
[128.1759 , 1.508706],
[129.1402 , 1.491635],
[130.1044 , 1.475144],
[131.0686 , 1.459387],
[132.0329 , 1.444416]])
添加回答
举报