本篇紀錄如何使用 python numpy 的資料寫入 csv。
將 numpy array 用 savetxt 寫入 csv
以下範例將 numpy array 寫入 csv,1
2
3
4
5
6
7
8
9
10
11
12
13
14#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np
arr = np.asarray([
[1,2,3],
[4,5,6],
[7,8,9]
])
print(type(arr)) # <class 'numpy.ndarray'>
np.savetxt('output_data.csv', arr, delimiter=',')
#np.savetxt('output_data.csv', arr, delimiter=',', fmt='%d')
#np.savetxt('output_data.csv', arr, delimiter=',', fmt='%.2f')
輸出的 output_data.csv 內容如下,1
2
31.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00
4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00
7.000000000000000000e+00,8.000000000000000000e+00,9.000000000000000000e+00
如果加入 fmt 參數的話可以控制輸出的格式,例如可以控制輸出的精準度 fmt='%d'
為整數 (預設為 fmt='%.18e'
),輸出的 output_data.csv 內容如下,1
2
31,2,3
4,5,6
7,8,9
如果是 fmt='%.2f'
為小數點第二位,輸出的 output_data.csv 內容如下,1
2
31.00,2.00,3.00
4.00,5.00,6.00
7.00,8.00,9.00
另外如果是使用 arr.tofile('output_data.csv', sep=',')
(numpy.ndarray.tofile) 的方式寫入 csv 是不會換行的。
其他參考
numpy.savetxt — NumPy Manual
https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html
python - Setting the fmt option in numpy.savetxt - Stack Overflow
https://stackoverflow.com/questions/17043393/setting-the-fmt-option-in-numpy-savetxt
其它相關文章推薦
如果你想學習 Python 相關技術,可以參考看看下面的文章,
Python 寫入 csv 檔案
Python 新手入門教學懶人包
Python str 字串用法與範例
Python list 串列用法與範例
Python set 集合用法與範例
Python dict 字典用法與範例
Python tuple 元組用法與範例