提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
例题
#文件名2.19.txt
6 2 6 7 4 2 5 9 1kg
4 9 5 3 8 5 8 2 2kg
5 2 1 9 7 4 3 3 3kg
7 6 7 3 9 2 7 1 4kg
2 3 9 5 7 2 6 5 5kg
5 5 2 2 8 1 4 -999 6kg
35 37 22 32 41 32 43 38 7kg
max_row和usecols
import numpy as np
a = np.genfromtxt("2.19.txt",max_rows=6,usecols=range(8)) #前六行前八列数据
b = np.genfromtxt("2.19.txt",dtype=str,max_rows=6,usecols=[8]) #前六行的第九列数据
print(a)
print(b)
输出:
[ 4. 9. 5. 3. 8. 5. 8. 2.]
[ 5. 2. 1. 9. 7. 4. 3. 3.]
[ 7. 6. 7. 3. 9. 2. 7. 1.]
[ 2. 3. 9. 5. 7. 2. 6. 5.]
[ 5. 5. 2. 2. 8. 1. 4. -999.]]
['1kg' '2kg' '3kg' '4kg' '5kg' '6kg']
rstrip删除’kg’
import numpy as np
b = np.genfromtxt("2.19.txt",dtype=str,max_rows=6,usecols=[8])
b = [float(v.rstrip('kg')) for (i,v) in enumerate(b)]
print(b) #输出结果[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
(v.rstrip('kg')
意思是在enumerate(b)生成的迭代器中将v值的’kg’都删除,以下是enumerate(b):
0 1kg
1 2kg
2 3kg
3 4kg
4 5kg
5 6kg
skip_header跳过数据集的首行
c = np.genfromtxt("2.19.txt",skip_header=6) #跳过前六行,即第七行开始读
print(c)
输出是:
[35. 37. 22. 32. 41. 32. 43. 38. nan]
在原始文本文件中,某些单元格可能包含非数值型的数据,例如字母或其他字符,而 np.genfromtxt 将无法将其转换为数值,因此将其解释为 nan (原文本中的7kg)。