numpy csv导入问题
问题描述:
我在从.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
参数更改数据类型,但它扔相同错误。有没有人有任何想法可能是什么问题?在此先感谢您的帮助!
答
的loadtxt()
输出是可惜稍稍inconistent:如果只有一个在你的文件中的行,x
和y
将是标量,但多行,他们将是一个数组。 Python内置的max()
仅适用于迭代器,因此它只适用于后者。
无论如何,使用Python内置的max()
函数而不是numpy.max()
对NumPy数组效率不高。因此,一个解决方案是使用
print x.max()
或
print numpy.max(x)
在第二行。
+0
谢谢!这非常有帮助。我很感激你花时间清楚地解释事情。 – drbunsen 2011-06-05 16:41:05
*哪个*行给出错误? – delnan 2011-06-05 14:43:07
如果你的文件只包含一行代码,''''''''''不幸的是''loadtxt()'会返回'x'和'y'的标量,而不是单个条目的数组。文件中只有一行? – 2011-06-05 14:44:59
'data.csv'文件包含一行数据与许多列。解决方案是为'data.csv'文件添加更多行吗? – drbunsen 2011-06-05 14:56:23