gpt4 book ai didi

python - 将数据从文件 .dat 保存到数组时出现问题

转载 作者:行者123 更新时间:2023-11-30 16:12:33 25 4
gpt4 key购买 nike

我有一个 C 语言程序,它生成一个输出文件调用 Orbits_toy_model.dat,如下所示:

1.00000e-003     1.80000e-003   0.099799950033337   0.200099899983342
2.80000e-003 3.24000e-003 0.099439608731989 0.200279215634646
6.04000e-003 5.83200e-003 0.098790183270494 0.200600348178616

所以我用 python 做了一个简单的程序来读取数据并保存在数组中:

from numpy import loadtxt
lines = loadtxt("C:/Users/Marta/OneDrive/Documents/Master/TFM/Code/EjemploIntegracion/prueba.dat", comments="#", delimiter=" ", unpack=False)

这适用于一个简单的数据文件:

1 2 3
4 5 6

但是当我运行实际数据文件时,它不起作用,它说:

Traceback (most recent call last):
File "C:/Users/Marta/.PyCharmCE2018.2/config/scratches/scratch_7.py", line 10, in <module>
lines = loadtxt("C:/Users/Marta/OneDrive/Documents/Master/TFM/Code/EjemploIntegracion/orbits_toy_model.dat", comments="#", delimiter=" ", unpack=False)
File "C:\Users\Marta\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\lib\npyio.py", line 1101, in loadtxt
for x in read_data(_loadtxt_chunksize):
File "C:\Users\Marta\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\lib\npyio.py", line 1028, in read_data
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Users\Marta\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\lib\npyio.py", line 1028, in <listcomp>
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Users\Marta\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\lib\npyio.py", line 746, in floatconv
return float(x)
ValueError: could not convert string to float:

我的文件格式似乎不正确,有什么方法可以在 python 中使用这种格式吗?

最佳答案

您的分隔符 (delimiter="") 是导致失败的原因。

numpy.loadtxt 中的默认分隔符是“任何空白”。由于您指定了单个空格,因此它使用该空格作为分隔符,但随后将所有其他空格包含为值的一部分。

如果您省略 delimiter 参数,您将获得预期的值(其中“test.dat”是您发布的数据):

>>> import numpy
>>> numpy.loadtxt('test.dat', comments='#', unpack=False)
array([[0.001 , 0.0018 , 0.09979995, 0.2000999 ],
[0.0028 , 0.00324 , 0.09943961, 0.20027922],
[0.00604 , 0.005832 , 0.09879018, 0.20060035]])

关于python - 将数据从文件 .dat 保存到数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58311371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com