Numpy.genfromtxt方法在Windows有效但在Linux无效

3 投票
1 回答
6740 浏览
提问于 2025-04-16 10:37

我正在处理一些数据,已经在Windows上写了一个Python程序,现在想在我的Linux电脑上运行它,这样我就可以在回家喝啤酒的时候让它继续处理数据。

代码中有一部分(很重要)是通过Numpy的genfromtxt方法从CSV文件中读取一些列的数据。相关的代码片段是:

rfd_values = np.genfromtxt(file_in, delimiter=',',
             skip_header=1,
             invalid_raise=0,
             usecols = cols)

这里的想法是,跳过表头,分隔符是逗号,只给我名为cols的列表中的列。这在我的Windows笔记本上运行得很好(Python和Numpy的版本都是2.6和1.5),但是在Linux上运行时,它告诉我:

*TypeError: genfromtxt() got an unexpected keyword argument 'skip_header'*

我试着把所有内容放在一行上,改变分隔符关键字的引号,但似乎都没有用。这可能是个小问题,但我就是找不到原因。我查阅了很多论坛和Numpy的文档,但没有看到任何和我遇到的问题相似的内容。我在想我可能遗漏了什么。

如果能得到一些帮助,我将非常感激。

提前谢谢!

-Jeff

1 个回答

4

你提到你在Linux上使用的是1.3版本。这个版本有一个参数叫做skiprows,它和skip_header是一样的。考虑到numpy.genfromtxt在1.3的文档中甚至没有提到,我猜这个功能可能只是当时在1.3版本中测试,最终的版本还没有完全确定。不过,针对你的情况,有个解决办法。你可以使用names=True这个参数。这样的话,第一行就不会用来当数据,而是用来确定列名(你可以用这些列名,代替在usecols中用列号)。

不过还有另一个问题。invalid_raise这个参数在1.3中也没有。

撰写回答