天天看點

關于numpy讀取csv檔案的一些記錄概要

概要

在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檔案:
    關于numpy讀取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檔案
  • 讀取出來的效果: