1. 程式人生 > >Numpy數組數據文件的讀寫

Numpy數組數據文件的讀寫

spa 二進制文件 test and 文件名 進制 mes pan 重要性

一、引言

讀寫數據文件的重要性就不必多說了。

二、讀取列表形式數據的文件

1、我們寫幾行CSV格式(列表形式,兩值之間逗號隔開)的數據。

id,height,age
1,175,20
2,168,18
3,177,30
4,142,12

使用genfromtxt()函數讀取數據。接收三個參數:文件名,分隔符,是否有列標題

In [4]: a = np.genfromtxt(test.csv,delimiter=,,names=True)

In [5]: a
Out[5]:
array([( 1.,  175.,  20.), ( 2.,  168.,  18.), ( 3.,  177.,  30.),
       ( 
4., 142., 12.)], dtype=[(id, <f8), (height, <f8), (age, <f8)])

這個函數的包含兩層循環:第一層循環每一行,第二層循環將每一行中的多個值分開後轉化,一次插入所創建的數組。優點是能夠處理文件中缺失的數據(Nan)。

2、我們試圖刪除幾個元素看看

id,height,age
1,175,
2,168,18
,177,30
4,,12
In [6]: a = np.genfromtxt(test.csv,delimiter=,,names=True)

In [7]: a
Out[
7]: array([( 1., 175., nan), ( 2., 168., 18.), ( nan, 177., 30.), ( 4., nan, 12.)], dtype=[(id, <f8), (height, <f8), (age, <f8)])

可見,genfromtxt()函數將缺失的數據填充為nan值(應該是no a number)

3、獲取某行或者某列

In [8]: a[0]
Out[8]: ( 1.,  175.,  nan)

In [9]: a[height]
Out[
9]: array([ 175., 168., 177., nan])

三、二進制文件讀寫

save()已二進制格式保存數據,參數:文件名(不用後綴),數據。

load()從二進制文件讀取數據,參數:文件名(帶後綴)

1.執行sava()後,在本目錄創建了my_data.npy二進制文件

In [10]: data = np.random.random((3,3))

In [11]: data
Out[11]:
array([[ 0.35264296,  0.81619681,  0.24089159],
       [ 0.31230919,  0.14782997,  0.53526203],
       [ 0.5505135 ,  0.64876637,  0.17538648]])

In [12]: np.save(my_data,data)

2、二進制文件數據讀取,以文件名作為參數,並帶上.npy擴展名

In [13]: np.load(my_data.npy)
Out[13]:
array([[ 0.35264296,  0.81619681,  0.24089159],
       [ 0.31230919,  0.14782997,  0.53526203],
       [ 0.5505135 ,  0.64876637,  0.17538648]])

Numpy數組數據文件的讀寫