最新详解Numpy中loadtxt 的用法
2020-04-25 本文已影响0人
KangSmit的算法那些事儿
Numpy中有两个函数可以用来读取文件,主要是txt文件, 下面主要来介绍这两个函数的用法
第一个是loadtxt, 其一般用法为
numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
上面给出了loadtxt所有的关键字参数, 这里我们可以来一一解释并给出示例
这里我们使用的是jupyter notebook, 可以实现交互式的界面操作
这里我们通过以下几个小栗子简单介绍函数的功能:
1、简单的读取
image.png数组中的数都为浮点数,原因为Python默认的数字的数据类型为双精度浮点数
2、skiprows=n:指跳过前n行
test.txt
A B C D
2 3 4 5
3 4 5 6
4 5 6 7
a = np.loadtxt('test.txt', skiprows=1, dtype=int)
print(a)
输出:
[[2 3 4 5]
[3 4 5 6]
[4 5 6 7]]
3、comment=‘#’:如果行的开头为#就会跳过该行
test.txt
A B C D
2 3 4 5
3 4 5 6
#A B C D
4 5 6 7
a = np.loadtxt('test.txt', skiprows=1, dtype=int, comments='#')
print(a)
输出:
[[2 3 4 5]
[3 4 5 6]
[4 5 6 7]]
4、usecols=[0,2]:是指只使用0,2两列,参数类型为list
a = np.loadtxt('test.txt', skiprows=1, dtype=int, comments='#',usecols=(0, 2), unpack=True)
print(a)
输出:
[[2 3 4]
[4 5 6]]
unpack是指会把每一列当成一个向量输出, 而不是合并在一起。 如果unpack为false或者参数的话输出结果如下:
[[2 4]
[3 5]
[4 6]]
test.txt
A, B, C, D
2, 3, 4, 5
3, 4, 5, 6
#A B C D
4, 5, 6, 7
5、delimiter:数据之间的分隔符。如使用逗号","。
6、converters:对数据进行预处理
def add_one(x):
return int(x)+1 #注意到这里使用的字符的数据结构
a = np.loadtxt('test.txt', dtype=int, skiprows=1, converters={0:add_one}, comments='#', delimiter=',', usecols=(0, 2), unpack=True)
print a
[[3 4 5]
[4 5 6]]