Python中genfromtxt读入文件数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


例题

#文件名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)。

  • 13
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值