想一步到位快速读取数据——numpy.loadtxt(文件)

1、一步到位

#numpy库是关于数组操作的模块
import numpy as np 

#np.loadtxt会将文件中数据转换为一个数组
file_reading=np.loadtxt("文件名.txt"); 

2、一步到位的前提

  • 文件名.txt文件必须在当前jupyter notebook编写的代码所在路径下(在标签页Home下根据文件名可以快速找到你当前编写代码所在路径)

  • 你已经将你的数据列成了相应的数组形式,中间以空格隔开,例如:
    在这里插入图片描述

3、一步读取法的好处

  • 文本文件作为一种无格式文本,笔者认为它的好处就是记录简单、读取简单,所以依旧是当下很多计算软件的生成的数据文件常见格式,比如笔者在进行自己专业的计算分析——有限元分析中经常会遇到这种纯文本的数据文件,那么对于它的循环读取就很便利了。
  • 这样读取后得到的就是一个数组
    在这里插入图片描述相信学会数组的童鞋都知道,当数据信息繁杂,尤其是在做学术分析时,经常会考虑各种各样的因素,当要同时考虑它们的影响时,就要用到数组的运算了,那么对于这么多的信息做运算,光用Excel是不是就很难做了呢?那么我们可以把它复制到文本文件中,这样直接保存利用上面的读取方法,我们就可以做数组的运算了。

4、numpy.loadtxt()方法的“无用”参数有以下这些:

在这里插入图片描述

以上为默认参数值。

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

其中,converters参数比较难理解,举例:

def add_one(x):
    return int(x)+1  # 注意到这里使用的字符的数据结构
#加“.”可以表示读取当前代码所在下的相对路径
(a, b) = np.loadtxt('./data/test2.txt', dtype=int, skiprows=1, converters={0:add_one})
print(a, b)

converters参数是是一个字典,如上面的例子,我们可以先定义一个预处理函数add_one

例子中的converters={0:add_one}, 表示 第 0 列 使用函数add_one来进行预处理。

还有usecols参数,如果取txt中的前4列,则usecols=(0,1,2,3)。如果取第5列这一列,则usecols=(4,)。这种取单一列的情况容易出问题,请大家多注意,例如:usecols = 3读取第四列的方式与usecols = (3,)相同

参考:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.loadtxt.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值