[英]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.