python数据类型

时间:2010-07-14 18:44:24

标签: python types

我编写了一个脚本来获取列中数据的文件并根据用户想要查看的列绘制它。好吧,我注意到这些情节看起来很疯狂,所有错误的数字因为python忽略了指数。

我的号码格式为:1.000000E + 1 OR 1.000000E-1

那是什么类型的?我使用numpy.genfromtxt导入dtype = float。我知道你可以输入各种各样的dtypes,但我找不到一个完整的选项列表和例子。

感谢。

以下是我输入的示例(这些空格是制表符):

  

时间戳 T1_ModBt T2_90Bend T3_InPE T5_Stg2Rfrg
  上午5:22 2.115800E + 2 1.400000E + 0 1.400000E + 0 3.035100E + 1
  上午5:23 2.094300E + 2 1.400000E + 0 1.400000E + 0 3.034800E + 1
  上午5:24 2.079300E + 2 1.400000E + 0 1.400000E + 0 3.031300E + 1
  上午5:25 2.069500E + 2 1.400000E + 0 1.400000E + 0 3.031400E + 1
  上午5:26 2.052600E + 2 1.400000E + 0 1.400000E + 0 3.030400E + 1
  上午5:27 2.040700E + 2 1.400000E + 0 1.400000E + 0 3.029100E + 1

更新 我想出了至少部分原因,我正在做的事情不起作用。仍然不知道如何以我想要的方式定义dtypes。

import numpy as np

file = np.genfromtxt('myfile.txt', usecols = (0,1), dtype = (str, float), delimiter = '\t')

返回每列的字符串数组。我怎么告诉它我希望第0列是str,其余所有列都是浮点数?

3 个答案:

答案 0 :(得分:1)

In [55]: type(1.000000E+1)
Out[55]: <type 'float'>

您的输入数据是什么样的,它可能是错误的输入格式,但它也确保将其转换为正确的格式相当容易。

答案 1 :(得分:1)

1.0000E+1形式的数字可以由float()解析,所以我不确定问题是什么:

>>> float('1.000E+1')
10.0

答案 2 :(得分:0)

我想你会想要一个文本解析器来将格式解析为本机python数据类型。

如1.00000E + 1变为1.0 ^ 1,可以表示为浮点数。