NumPy CSV导入问题

3

我在从.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参数来更改数据类型,但它抛出了相同的错误。有人知道问题可能是什么吗?感谢您提前的帮助!


哪一行出现了错误? - user395760
2
如果您的文件只包含一行,则loadtxt()不幸地会返回一个标量,而不是一个仅有一个条目的数组。您的文件中只有一行吗? - Sven Marnach
“data.csv”文件包含一行具有多个列的数据。解决方案是向“data.csv”文件添加更多行吗? - drbunsen
1个回答

4
loadtxt()的输出有点不一致:如果文件中只有一行,则xy将是标量,但对于多行,则它们将是数组。Python内置的max()仅适用于可迭代对象,因此仅适用于后一种情况。对于NumPy数组,使用Python内置的max()函数而不是numpy.max()是低效的。因此,解决方案是使用:
print x.max()

或者

print numpy.max(x)

在第二行。

谢谢!这非常有帮助。我感谢您花时间如此清晰地解释事情。 - drbunsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接