簡體   English   中英

將混合的numpy數組類型寫入文件

[英]Writing mixed numpy array types to file

我正在嘗試將3列數據數組寫入文本文件。 每行都有一個關聯的日期和時間,該日期和時間包含在另一個數組中作為字符串。

例如:

>>> data 
array([[0, 1, 9],
       [1, 1, 2],
       [2, 4, 2],
       [7, 3, 2],
       [2, 2, 7],
       [1, 0, 5]])

>>> dates
array([['2017-07-28T12:00:00'],
       ['2017-07-28T12:01:00'],
       ['2017-07-28T12:02:00'],
       ['2017-07-28T12:03:00'],
       ['2017-07-28T12:04:00'],
       ['2017-07-28T12:05:00']], 
      dtype='<U19')

我正在嘗試使用numpy.savetxt將字符串和數據寫入文件。 根據以上數據,輸出文件應如下所示:

'2017-07-28T12:00:00', 0, 1, 9
'2017-07-28T12:01:00', 1, 1, 2
'2017-07-28T12:02:00', 2, 4, 2
'2017-07-28T12:03:00', 7, 3, 2
'2017-07-28T12:04:00', 2, 2, 7
'2017-07-28T12:05:00', 1, 0, 5

不幸的是,我不知道如何正確地將字符串和數字數據連接起來以使用savetxt。 我曾嘗試串聯數組,將它們連接成元組,將它們堆疊等,但是解決方案卻整日暗示着我。 理想情況下,我想堅持使用numpy,不要將其逐行循環或涉及到Pandas。

誰能推薦一種使這項工作成功的方法?

由於要堆疊列(例如將兩個數組粘合在一起),因此需要使用np.column_stack() 但是,結果數組具有不同的數據類型,這在調用np.savetxt()時會導致一些問題。 因此,作為一種快捷的解決方案,我提供了fmt=%s參數來使用字符串格式化程序

import numpy as np

a = np.array([
        [0, 1, 9],
        [1, 1, 2],
        [2, 4, 2],
        [7, 3, 2],
        [2, 2, 7],
        [1, 0, 5]
    ])

b = np.array([
        ['2017-07-28T12:00:00'],
        ['2017-07-28T12:01:00'],
        ['2017-07-28T12:02:00'],
        ['2017-07-28T12:03:00'],
        ['2017-07-28T12:04:00'],
        ['2017-07-28T12:05:00']
    ])

out = np.column_stack([b, a])

np.savetxt('output.txt', out, delimiter='\t', fmt="%s")

輸出看起來像這樣(由於delimiter='\\t'delimiter='\\t' ):

2017-07-28T12:00:00 0   1   9
2017-07-28T12:01:00 1   1   2
2017-07-28T12:02:00 2   4   2
2017-07-28T12:03:00 7   3   2
2017-07-28T12:04:00 2   2   7
2017-07-28T12:05:00 1   0   5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM