numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
参数的作用如下:
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)
结果;
[['伤感自拍' '半句别恨半心凉']
['官宣表白' '你是人间惊鸿客']
['秀闺蜜照' '宿翠残红窈窕']
['睡前自拍' '吹梦到西州']
['情侣离别' '念你成疾']]
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]]
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是将数组转化为列表(列表是用逗号隔开的)