一步读取法
- 1、一步到位
- 2、一步到位的前提
- 3、一步读取法的好处
- 4、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