【发布时间】:2020-04-02 23:49:14
【问题描述】:
我正在使用的数据可以在这个gist找到,
看起来像:
07-11-2018 18:34:35 -2.001 5571.036 -1.987
07-11-2018 18:34:50 -1.999 5570.916 -1.988
image of code and output in Jupyter Notebook
打电话时
TB_CAL_array = np.genfromtxt('calbath_data/TB118192.TXT',
skip_header = 10,
dtype = ([("date", "<U10"), ("time","<U8"), ("bathtemp", "<f8"),
("SBEfreq", "<f8"), ("SBEtemp", "<f8")])
)
数组的输出是:
array([('07-11-2018', '18:34:35', -2.001e+00, 5571.036, -1.987),
('07-11-2018', '18:34:50', -1.999e+00, 5570.916, -1.988),
数据作为元组的结构化 ndarray 输出,并且是非同质数组,因为它包含字符串和浮点数。 numpy.genfromtxt produces array of what looks like tuples, not a 2D array—why?
注意:数据输出的第三列已被视为指定的 dtype 以外的内容。
输出应该是-2.001,但它是-2.001e+00
注意:请注意,第五列具有相同的输入格式和 dtype 指定,但是在 genfromtxt 函数期间没有发生数据转换...
我能发现“bathtemp”和“SBEtemp”之间的唯一区别是“bathtemp”列之后有两个额外的空格......
但是基于 numpy.genfromtxt IO documentation 这应该没关系,因为连续的空格应该自动被视为分隔符。:
delimiter : str, int, or sequence, 可选 用于分隔值的字符串。默认情况下,任何连续的空格都充当分隔符。也可以提供整数或整数序列作为每个字段的宽度。
“bathtemp”列后的多余空格是否会导致错误?如果是这样,我该如何解决?
【问题讨论】:
-
第 3 列是有效的浮点数 - 科学记数法。
-
我没有看到任何错误。你得到了一个与 dtype 匹配的数组。
-
stackoverflow.com/questions/59275231/… - 关于 pandas 和 numpy 科学记数法控件
标签: arrays numpy python-import delimiter genfromtxt