关于python中numpy.loadtxt()的详细⽤法
做数据分析离不开对数据的获取,⽽常⽤到的作为数据存储的⽂件类型有:csv,json,vml,hdf等(本⽂介绍对csv⽂件的数据获取⽅法numpy.loadtxt())。
获取csv⽂件数据常⽤到的模块
照⾃⼰⽬前的学习进度,对csv数据的获取通常会⽤到numpy模块的loadtxt()⽅法以及在numpy基础上的pandas模块(下篇博客提及). numpy的loadtxt()⽅法
numpy.loadtxt()⽅法的参数有以下这些:
参数作⽤
fname被读取的⽂件名(⽂件的相对地址或者绝对地址)
dtype指定读取后数据的数据类型
comments跳过⽂件中指定参数开头的⾏(即不读取)
delimiter指定读取⽂件中数据的分割符
converters对读取的数据进⾏预处理
skiprows选择跳过的⾏数
usecols指定需要读取的列
unpack选择是否将数据进⾏向量输出
encoding对读取的⽂件进⾏预编码
各个参数的详细⽤法
fname:指定需要读取的CSV⽂件(从某种意义来说,CSV⽂件属于txt⽂件,详细可百度)地址即可完成最简单的读取操作,如下:
创建⼀个csv⽂件(test_csv.csv),⽂件内容是:
使⽤numpy.loadtxt()读取,此时使⽤⽂件的相对地址进⾏读取:
python怎么读取文件中的数据import numpy as np
csv_array = np.loadtxt('./test_csv.csv',dtype=str)
结果显⽰为:
考虑到loadtxt()中的dtype参数默认设置为float,这⾥设置为str字符串便于显⽰,顺带说⼀下,dtype参数指定读取后的数据类型,⽽numpy读取后的数据是⼀个numpy多维数组的数据类型,下下博客可能介绍。
comments:comments参数指定读取中,跳过以comments参数开头的⾏,如:类似linux系统的配置⽂件中⽤于说明的⾏,⼀般
⽤“#”开头,我们就可以⽤comments参数进⾏跳过。
(演⽰需要)建⽴⼀个TXT⽂件,内容如下:
使⽤numpy进⾏读取:
import numpy as np
txt_array = np.loadtxt('./',dtype=str,comments='#')
print(txt_array)
结果显⽰为:
delimiter:该参数类似于python处理字符串分割中的split()函数,对数据根据参数进⾏分割处理。例如fname参数中的⽂件
test_csv.csv,csv⽂件默认是以逗号分隔数据,在查看⽂件时没有显⽰,当没有使⽤delimiter参数进⾏分割时,默认是将整个数据⼀起输出,当使⽤delimiter参数时:
import numpy as np
csv_array = np.loadtxt('./test_csv.csv',dtype=str,delimiter=',')
print(csv_array)
结果显⽰为:
结果将数据分⾏输出了
converters:该参数是将某⼀列的数据进⾏函数预处理再获取,格式为:{列号:函数},可以看成⼀个字典形式,对列上的所有数据进⾏函数处理
具体过程如下:
先定义⼀个函数
def _is_num(_str):
if len(_str)>1:
return 'num'
return 'values'
使⽤converters参数操作⽂件:
csv_array = np.loadtxt('./test_csv.csv',
dtype=str,
delimiter=',',
converters={1:_is_num})
结果显⽰为:
skiprows:指定读取时忽略的⾏数,默认从⾸⾏开始计数,也就是说,当我们设置skiprows=1时,列名就会被跳过不读取,这个参数经常被这样使⽤:
csv_array = np.loadtxt('./test_csv.csv',
dtype=str,
delimiter=',',
converters={1:_is_num},
skiprows=1)
结果显⽰为:
usecol:usecols参数指定我们需要使⽤的列,⽤于提取⽂件中我们使⽤的数据,也就是说,平时中我们可能不需要index序列之类的,只要values这⼀列的数据,如下设置:
csv_array = np.loadtxt('./test_csv.csv',
dtype=str,
delimiter=',',
usecols=1,
skiprows=1)
csv⽂件的列号是从0开始计数,所以我们在这⾥将参数设置为1.
结果显⽰为:
unpack:选择是否将数据向量输出,默认是False,即将数据逐⾏输出,当设置为True时,数据将逐列输出。
csv_array = np.loadtxt('./test_csv.csv',
dtype=str,
delimiter=',',
unpack=True,
skiprows=1)
结果显⽰为:
encoding:这个参数是决定读取⽂件时使⽤的编码⽅式,也就是对⽂件编码⽅式进⾏更改,python经常有编码⽅⾯的问题出现,关于编码与解码的换⼀篇博客再讲,在这⾥就不细说了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论