2011-06-05 93 views
3

我在从.csv文件导入数据时遇到了一些困难。我只是试图导入数据并打印最大值。这里是我的代码:numpy csv导入问题

>>> x, y = numpy.loadtxt('data.csv', delimiter=',', usecols=(4,5), unpack=True) 
>>> print 'max =', max(x) 

当我输入上面的代码,我收到以下错误信息:

TypeError: 'numpy.float64' object is not iterable 

我尝试使用dtype=int参数更改数据类型,但它扔相同错误。有没有人有任何想法可能是什么问题?在此先感谢您的帮助!

+0

*哪个*行给出错误? – delnan 2011-06-05 14:43:07

+2

如果你的文件只包含一行代码,''''''''''不幸的是''loadtxt()'会返回'x'和'y'的标量,而不是单个条目的数组。文件中只有一行? – 2011-06-05 14:44:59

+0

'data.csv'文件包含一行数据与许多列。解决方案是为'data.csv'文件添加更多行吗? – drbunsen 2011-06-05 14:56:23

回答

4

loadtxt()输出是可惜稍稍inconistent:如果只有一个在你的文件中的行,xy将是标量,但多行,他们将是一个数组。 Python内置的max()仅适用于迭代器,因此它只适用于后者。

无论如何,使用Python内置的max()函数而不是numpy.max()对NumPy数组效率不高。因此,一个解决方案是使用

print x.max() 

print numpy.max(x) 

在第二行。

+0

谢谢!这非常有帮助。我很感激你花时间清楚地解释事情。 – drbunsen 2011-06-05 16:41:05