1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1

python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1

时间:2020-08-24 10:26:51

相关推荐

python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1

1.使用Python内置文本操作函数读取数据

字符数据:

第一种写法:

处理文本数据代码:

import numpy as npwith open('out.txt') as f:line=f.readline()data_array=[]while line:num=list(map(str,line.split(' ')))#关于map()函数另一篇文章有详细介绍data_array.append(num)line=f.readline()data_array=np.array(data_array)print(data_array[0][:])print('*'*50)print(data_array)

结果:

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

这里使用的的readline()和while循环结合,readline()每次读取一行数据(这是因为read()读取文件是如果文件很大,一次全部读取,容易造成内存不足,因此通常会采取逐行读取)

第二种写法:

import numpy as npwith open('out.txt') as f:lines=f.readlines()data_array=[]for line in lines:num=list(map(str,line.split(' ')))data_array.append(num)data_array=np.array(data_array)print(data_array[0][:])print('*'*50)print(data_array)

结果和上面的代码一样。

这里用的是readlines()和for循环结合。readlines()一次读取所有的行,返回一个字符串列表。如果文件比较,采用这种方式输出文件内容比较慢,因此,一般使用for循环将列表内容逐行输出。

数值类型:

import numpy as npwith open('out1.txt') as f:line=f.readline()data_array=[]while line:num=list(map(int,line.split(' ')))data_array.append(num)line=f.readline()data_array=np.array(data_array)print(data_array[0][:])print('*'*50)print(data_array)

结果:

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

只是map()函数的参数改变,对于数值类型可以是int或者float。

同理,和上文一样可以用readlines()来写。

第二种写法:

import numpy as npwith open('out1.txt') as f:lines=f.readlines()data_array=[]for line in lines:num=list(map(int,line.split(' ')))data_array.append(num)data_array=np.array(data_array)print(data_array[0][:])print('*'*50)print(data_array)

结果和第一种写法一样。

2.使用numpy中的IO函数读取数据

numpy中有两个函数是处理正常的文本文件的(txt等);loadtxt()和savetxt()。

1.处理数值类型数据

import numpy as npdata_array=np.loadtxt('out1.txt',delimiter=' ')#默认floatprint(data_array[0][:])print('*'*50)print(data_array)

结果:

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

结果也是一样的。

2.处理字符类型:

import numpy as npdata_array=np.loadtxt('out.txt',dtype=str,delimiter=' ')print(data_array[0][:])print('*'*50)print(data_array)

结果:

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

关于loadtxt函数的介绍在以一篇单独介绍。

未完…

python 读取TXT文件数据(字符或数值)存放在numpy数组中以及训练集测试集的处理(1)(个人笔记)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。