概要
在python中使用numpy對csv檔案進行讀取的時候費了些功夫,記錄在此以防下次遇上
資料讀取
import numpy as np
dataarr = np.loadtxt(open("D:\orgStatstic1.csv","rb"),delimiter=",",skiprows=0,dtype=str,encoding='UTF-8')
對掉坑的進行一一解釋:
-
open(“D:\orgStatstic1.csv”,“rb”)
此處路徑要用絕對路徑,相對路徑會報錯找不到檔案,目前還不知道原因是什麼,可能是因為我的代碼沒有寫在安裝python的檔案夾下,是從安裝路徑進行相對路徑的選取的
-
dtype=str
預設讀取格式為float,不加這個會報錯:無法将str格式轉換為float格式
-
encoding=‘UTF-8’
讀取資料的編碼格式,不添加這個選項時列印出的dataarr會報錯:無法進行編碼
-
dataarr 資料格式
其資料格式為清單list
例:
- csv檔案:
- 讀取出來的效果:
['\ufeff1m' '3m' '5m' '7m' '9m' '15m' '20m']
['-15' '-27' '-22' '-52' '-109' '-100' '-120']
['-15' '-30' '-27' '-83' '-52' '-120' '-83']
['-10' '-22' '-20' '-36' '-131' '-131' '-131']
['-17' '-36' '-25' '-83' '-144' '-131' '-144']
['-17' '-36' '-47' '-19' '-100' '-144' '-109']
['-10' '-39' '-27' '-69' '-109' '-120' '-120']
['-15' '-39' '-25' '-52' '-109' '-131' '-75']
對csv檔案進行按列讀取
import numpy as np
rssi1,rssi3 = np.loadtxt(open("D:\畢設\資料\資料預處理\org.csv","rb"),delimiter=",",skiprows=1,dtype=str,encoding='UTF-8',usecols=(0,1),unpack=True)
print(rssi3)
-
unpack=True
需添加否則會報錯:too many values to unpack (expected 2)
-
skiprows=1
跳過的行數,此處表示跳過第一行
-
usecols=(0,1)
表示對第幾列進行分别讀取并存儲進相對應的變量,此處隻讀取了兩列,可分别讀取更多列
列數是從0開始進行計數的
例:
- csv檔案:仍是上述的csv檔案
- 讀取出來的效果: