为了账号安全,请及时绑定邮箱和手机立即绑定

采取在“错误无法执行与灵活类型减少” Python中读取数据的手段

采取在“错误无法执行与灵活类型减少” Python中读取数据的手段

潇潇雨雨 2021-03-29 11:51:57
我试图从文本文件中读取数据并取这些数据的均值,但是我得到的错误是无法使用灵活类型执行减少操作。我不知道为什么,有人可以帮忙。这是我的代码。right=open('01phi.txt','r').readlines()  right=str(right) a=np.asarray(right)b=np.mean(a)print b编辑:我现在正在使用此行, right=np.genfromtxt('01phi.txt') 但它会产生此错误,Line #10 (got 3 columns instead of 7)因为数组中的此行不那么大。使用genfromtxt导入numpy中缺少值的csv数据时,此链接告诉我如何忽略底线或如何填充底线,但是这两种方法都会压低平均值。有办法解决这个问题吗?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

right是一个字符串。np.asarray(some_string)返回带有字符串dtype的数组。NumPy的np.mean函数在传递字符串dtype的数组时引发TypeError。


In [29]: np.asarray('1 2 3')

Out[29]: 

array('1 2 3', 

      dtype='|S5')

In [31]: np.mean(a)

TypeError: cannot perform reduce with flexible type

而是使用np.genfromtxt或np.loadtxt从文本文件加载数组:


a = np.genfromtxt(filename, ...)


查看完整回答
反对 回复 2021-04-05
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

有一种方法可以将类似文件的自定义对象np.genfromtxt传递给。您可以使用类似的方法来处理短行并返回全行。但是,我认为这比您在此处真正想要使用的代码更多。我认为编写一个预处理脚本将您的旧数据文件重写(通过将零添加到丢失的列中)到一个可以被np.genfromtxt读取的脚本中会更容易

查看完整回答
反对 回复 2021-04-05
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信