关于python中numpy.loadtxt()的详细用法

本文详细介绍如何使用numpy模块的loadtxt()方法读取CSV文件,包括参数fname、dtype、comments、delimiter、converters、skiprows、usecols、unpack和encoding的使用方法,以及它们在数据读取过程中的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做数据分析离不开对数据的获取,而常用到的作为数据存储的文件类型有:csv,json,vml,hdf等(本文介绍对csv文件的数据获取方法numpy.loadtxt())。

获取csv文件数据常用到的模块

照自己目前的学习进度,对csv数据的获取通常会用到numpy模块的loadtxt()方法以及在numpy基础上的pandas模块(下篇博客提及).

numpy的loadtxt()方法

numpy.loadtxt()方法的参数有以下这些:
pycharm给出的参数提示

参数作用
fname被读取的文件名(文件的相对地址或者绝对地址)
dtype指定读取后数据的数据类型
comments跳过文件中指定参数开头的行(即不读取)
delimiter指定读取文件中数据的分割符
converters对读取的数据进行预处理
skiprows选择跳过的行数
usecols指定需要读取的列
unpack选择是否将数据进行向量输出
encoding对读取的文件进行预编码

各个参数的详细用法

fname:指定需要读取的CSV文件(从某种意义来说,CSV文件属于txt文件,详细可百度)地址即可完成最简单的读取操作,如下:
创建一个csv文件(test_csv.csv),文件内容是:
csv文件内容
使用numpy.loadtxt()读取,此时使用文件的相对地址进行读取:

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文件test.txt,内容如下:
txt文件内容
使用numpy进行读取:

import numpy as np
txt_array = np.loadtxt('./test.txt',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)

结果显示为:
使用delimiter
结果将数据分行输出了
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})

结果显示为:
使用converters参数
skiprows:指定读取时忽略的行数,默认从首行开始计数,也就是说,当我们设置skiprows=1时,列名就会被跳过不读取,这个参数经常被这样使用:

csv_array = np.loadtxt('./test_csv.csv',
                       dtype=str,
                       delimiter=',',
                       converters={1:_is_num},
                       skiprows=1)

结果显示为:
skiprows的使用
usecol:usecols参数指定我们需要使用的列,用于提取文件中我们使用的数据,也就是说,平时中我们可能不需要index序列之类的,只要values这一列的数据,如下设置:

csv_array = np.loadtxt('./test_csv.csv',
                       dtype=str,
                       delimiter=',',
                       usecols=1,
                       skiprows=1)

csv文件的列号是从0开始计数,所以我们在这里将参数设置为1.
结果显示为:
usecol的使用
unpack:选择是否将数据向量输出,默认是False,即将数据逐行输出,当设置为True时,数据将逐列输出。

csv_array = np.loadtxt('./test_csv.csv',
                       dtype=str,
                       delimiter=',',
                       unpack=True,
                       skiprows=1)

结果显示为:
在这里插入图片描述
encoding:这个参数是决定读取文件时使用的编码方式,也就是对文件编码方式进行更改,python经常有编码方面的问题出现,关于编码与解码的换一篇博客再讲,在这里就不细说了。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值