AI人工智能与数学之美

最新详解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]]

引用原文链接

上一篇 下一篇

猜你喜欢

热点阅读