天天看点

关于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文件
  • 读取出来的效果: