numpy.loadtxt()用法

1.np.loadtxt 用法 读取txt文件

numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False

参数的作用如下:

1. fname

import numpy as np
# 首先给出最简单的loadtxt的代码,实际上就是直接写文件名, 其他关键字参数都是默认的.
a = np.loadtxt('out.txt')
print(a)  # a为浮点数的原因为Python默认的数字的数据类型为双精度浮点数

结果:

[['伤感自拍' '半身风雨半身伤' '半句别恨半心凉']
 ['官宣表白' '我是檐上三寸雪' '你是人间惊鸿客']
 ['秀闺蜜照' '含娇含笑' '宿翠残红窈窕']
 ['睡前自拍' '南风知我意' '吹梦到西州']
 ['情侣离别' '南风未起' '念你成疾']]

2. skiprows

# 设置skiprows=2, 就会跳过前两行,数据类型设置为字符串.
a = np.loadtxt('out.txt',dtype=str,skiprows=2)
print(a)

结果:

[['秀闺蜜照' '含娇含笑' '宿翠残红窈窕']
 ['睡前自拍' '南风知我意' '吹梦到西州']
 ['情侣离别' '南风未起' '念你成疾']]

3.comment

# 这里的comment的是指, 如果行的开头为*就会跳过该行(这里将睡前自拍前面加*)
a = np.loadtxt('out.txt',dtype=str,skiprows=1,comments='*')
print(a)

结果:

[['官宣表白' '我是檐上三寸雪' '你是人间惊鸿客']
 ['秀闺蜜照' '含娇含笑' '宿翠残红窈窕']
 ['情侣离别' '南风未起' '念你成疾']]

4.delimiter

import numpy as np
#参数 delimiter 可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等
a = np.loadtxt('out.txt',dtype=str,delimiter=' ')
print(a)

结果:

[['伤感自拍' '半身风雨半身伤' '半句别恨半心凉']
 ['官宣表白' '我是檐上三寸雪' '你是人间惊鸿客']
 ['秀闺蜜照' '含娇含笑' '宿翠残红窈窕']
 ['睡前自拍' '南风知我意' '吹梦到西州']
 ['情侣离别' '南风未起' '念你成疾']]

5.usecols

import numpy as np
#usecols是指只使用0,2两列
a = np.loadtxt('out.txt',dtype=str,delimiter=' ',usecols=(0,2))
print(a)

结果:

[['伤感自拍' '半句别恨半心凉']
 ['官宣表白' '你是人间惊鸿客']
 ['秀闺蜜照' '宿翠残红窈窕']
 ['睡前自拍' '吹梦到西州']
 ['情侣离别' '念你成疾']]

6. unpack

import numpy as np
# unpack是指会把每一列当成一个向量输出, 而不是合并在一起
a = np.loadtxt('out.txt',dtype=str,delimiter=' ',unpack=True)
print(a)
b,c = np.loadtxt('out.txt',dtype=str,delimiter=' ',usecols=(0,1),unpack=True)
print(b,c)

结果:

[['伤感自拍' '官宣表白' '秀闺蜜照' '睡前自拍' '情侣离别']
 ['半身风雨半身伤' '我是檐上三寸雪' '含娇含笑' '南风知我意' '南风未起']
 ['半句别恨半心凉' '你是人间惊鸿客' '宿翠残红窈窕' '吹梦到西州' '念你成疾']]
['伤感自拍' '官宣表白' '秀闺蜜照' '睡前自拍' '情侣离别'] ['半身风雨半身伤' '我是檐上三寸雪' '含娇含笑' '南风知我意' '南风未起

7.converters

import numpy as np
# 介绍converters参数, 这个是对数据进行预处理的参数
#我们可以先定义一个函数, 这里的converters是一个字典, 表示第1列使用函数func来进行预处理
def func(x):
    return int(x)+1

a = np.loadtxt('out1.txt',dtype=int,delimiter=' ',converters={1:func})
print(a)

结果:

[[ 1  3  3  4  5  6  7  8]
 [ 9 11 11 12 13 14 15 16]
 [17 19 19 20 21 22 23 24]
 [25 27 27 28 29 30 31 32]]

2.np.savetxt保存文本

3.np.loadtxt()读取csv文件

import numpy as np
a=np.arange(100).reshape(10,10)
np.savetxt('out2.csv',a,fmt='%d')
data=np.loadtxt('out2.csv',dtype=int,usecols=(1,2))
print(data)
print(data.shape)

结果:

[[ 1  2]
 [11 12]
 [21 22]
 [31 32]
 [41 42]
 [51 52]
 [61 62]
 [71 72]
 [81 82]
 [91 92]]
(10, 2)

unpack的使用:

import numpy as np
a=np.arange(100).reshape(10,10)
np.savetxt('out2.csv',a,fmt='%d')
data1,data2=np.loadtxt('out2.csv',dtype=int,usecols=(1,2),unpack=True)
print(data1)
print('*'*50)
print(data1.tolist())

结果:

[ 1 11 21 31 41 51 61 71 81 91]
**************************************************
[1, 11, 21, 31, 41, 51, 61, 71, 81, 91]

tolist是将数组转化为列表(列表是用逗号隔开的)

 
原文地址:https://www.cnblogs.com/celine227/p/13976393.html