猿问

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

我试图从文本文件中读取数据并取这些数据的均值,但是我得到的错误是无法使用灵活类型执行减少操作。我不知道为什么,有人可以帮忙。这是我的代码。


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数据时,此链接告诉我如何忽略底线或如何填充底线,但是这两种方法都会压低平均值。有办法解决这个问题吗?


潇潇雨雨
浏览 203回答 2
2回答

肥皂起泡泡

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, ...)

慕标琳琳

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

相关分类

Python
我要回答