[英]Numpy genfromtxt: python 2 vs 3 differences in reading line breaks
我正在使用Numpy的genfromtxt读取CSV文件。 一切都能在Python 2.7(Numpy 1.11.3,anaconda发行版)中按预期工作,但在Python 3.4.3(通过Ubuntu软件包管理器安装的Numpy 1.12.0)中完全失败。
Python 2.7中的预期结果(正确读取了所有数据):
>>> a = np.genfromtxt('data1.csv', delimiter=',', skip_header=1)
>>> a.shape
(1460, 3)
但是在Python 3.4中,该操作未返回任何内容:
>>> np.genfromtxt('data1.csv', delimiter=',', skip_header=1)
__main__:1: UserWarning: genfromtxt: Empty input file: "data1.csv"
array([], dtype=float64)
>>> a.shape
(0,)
如果我不跳过标题,那么我会将文件中的数据作为单个数组(有些?),并且大多数值都是nan:
>>> a.shape
(2923,)
>>> a
array([ nan, nan, nan, ..., nan, 1256., 147500.])
CSV文件的前几行是...
Id,GrLivArea,SalePrice
1,1710,208500
2,1262,181500
3,1786,223500
4,1717,140000
5,2198,250000
6,1362,143000
在此网站或Google上,我没有看到与此有关的其他任何问题...我遗漏了什么吗? 这些命令是相同的。 我知道numpy版本有所不同,但这与我在两个Python发行版之间(可以轻松获得)的距离非常接近。
我现在在Linux(Ubuntu)上,但是我也在Windows上重新创建了该问题。
这就是问题所在:由于某种原因,我的CSV文件的行尾仅包含回车符(\\ r):没有换行符(\\ n)[我认为可以为此感谢Excel]。 我用换行符替换了回车符,它可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.