【问题标题】:Reading ASCII file in Python (numpy-array?)在 Python 中读取 ASCII 文件(numpy-array?)
【发布时间】:2011-09-21 09:13:31
【问题描述】:

我在 Python 中读取 ASCII 文件时遇到问题。这是该文件的示例:http://pastebin.com/CTwwPPKA

我尝试使用 numpy 的 genfromtxt:

data = np.genfromtxt("example.txt")

但是这样我不能正确读取日期和时间,因为它们应该是日期时间对象。 另一方面,loadtxt 只能读取浮点值,这也是不可接受的。

您能否建议我一种正确读取此类文件的方法?

【问题讨论】:

    标签: python numpy ascii


    【解决方案1】:

    您必须在此处使用dtype 选项。

    x = np.genfromtxt("example.txt", dtype=None)
    print(x[0])
    

    你会得到

    ('DATA', 34967565, '2011-08-04', '19:00:00:081', 0.0272448, -0.17718500000000001, 4.2143899999999999, 524.57600000000002, 17.485499999999998, 101.07599999999999, 0.45927400000000002, 0.19031300000000001, 0.100296, 0.97492599999999996, 1.94354, 100.73399999999999, 12.538600000000001, 10.3786, 44318.5, 39605.5, 39234.5, 40298.0, 68)
    

    这里的诀窍是你必须将dtype指定为None,这样numpy才能自动识别字符串和数字,而默认dtype是float。

    然后您可以使用datetime.strptime 将字符串相应地转换为日期时间对象。

    【讨论】:

      【解决方案2】:

      您想将csv.reader()csv.excel_tab 方言一起使用。

      Examples of csv usage

      【讨论】:

      • 问题是文件有制表符和空格分隔符。
      • 不是你粘贴的内容。
      猜你喜欢
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 2014-04-06
      • 1970-01-01
      • 2020-05-07
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多