在python中导入36列用于绘图,第一列是日期

时间:2012-08-26 15:03:17

标签: python date matplotlib genfromtxt

我试图为多个井绘制水位水合物。数据位于文本文件中,第一列的日期格式为'yyyymmdd'。在这种特殊情况下,还有35个其他列具有浮点数。

我一直在尝试使用genfromtxt,但我不想定义所有36个dtypes。

我尝试使用转换器dtype=None,但后来我收到转换器被锁定且无法更新的消息。

1 个答案:

答案 0 :(得分:2)

我很惊讶您无法使用np.genfromtxtconverter参数将您的第一列转换为:

  • 一个np.datetime64对象(正如@DSM建议的那样,前提是你的numpy版本足够近(> 1.6.1))
  • np.objectconverter为:

    converter={0:lambda d: datetime.datetime.strptime(d,"%Y%m%d")

如果您不想自己定义dtype,可以使用dtype=None。然而,这并不是一个好主意,因为这个选项明显慢于给出一个明确的dtype。 但正如文档告诉您的那样,您可以使用元组来定义dtype,如下所示:

dtype=tuple([np.datetime64] + [float]*35)

dtype=tuple([np.object] + [float]*35)

可行。