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是将数组转化为列表(列表是用逗号隔开的)