使用numpy.genfromtxt读取单行CSV
我正在使用以下脚本通过numpy从标准输入读取一个文件。
#!/usr/bin/env python
import numpy as np
import sys
data = np.genfromtxt(sys.stdin, delimiter=",")
print data.shape
print data
这个方法对于有多于一行的文件是有效的。但是对于这个文件,它就不行了:
1,2,2,2,2,2,1,1,1
我这样运行它:
$ cat input-file.txt | ./test.py
输出结果如下:
(9,)
[ 1. 2. 2. 2. 2. 2. 1. 1. 1.]
它应该是形状为(,9)。有没有人知道怎么解决这个问题?
1 个回答
10
把它强制转换成一个二维数组:
data = np.genfromtxt(sys.stdin, delimiter=",")
if len(data.shape) == 1:
data = np.array([data])