讀取 CSV 檔案

可用的三個主要功能(手冊頁中的描述):

fromfile - 一種使用已知資料型別讀取二進位制資料的高效方法,以及解析簡單格式化的文字檔案。使用 tofile 方法寫入的資料可以使用此函式讀取。

genfromtxt - 從文字檔案載入資料,並按指定處理缺失值。超過第一個 skip_header 行的每一行將以分隔符分割,並且將丟棄註釋字元後面的字元。

loadtxt - 從文字檔案載入資料。文字檔案中的每一行必須具有相同數量的值。

genfromtxtloadtxt 的包裝函式。genfromtxt 是最直接使用的,因為它有許多引數來處理輸入檔案。

一致的列數,一致的資料型別(數字或字串):

給定一個輸入檔案,myfile.csv 的內容為:

#descriptive text line to skip
1.0, 2, 3
4, 5.5, 6

import numpy as np
np.genfromtxt('path/to/myfile.csv',delimiter=',',skiprows=1)

給出一個陣列:

array([[ 1. ,  2. ,  3. ],
       [ 4. ,  5.5,  6. ]])

列數一致,混合資料型別(跨列):

1   2.0000  buckle_my_shoe
3   4.0000  margery_door

import numpy as np
np.genfromtxt('filename', dtype= None)

array([(1, 2.0, 'buckle_my_shoe'), (3, 4.0, 'margery_door')], 
dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '|S14')])

注意 dtype=None 的使用導致重新排列。

列數不一致:

file:1 2 3 4 5 6 7 8 9 10 11 22 13 14 15 16 17 18 19 20 21 22 23 24

進入單行陣列:

result=np.fromfile(path_to_file,dtype=float,sep="\t",count=-1)