使用numpy.genfromtxt读取单行CSV

8 投票
1 回答
2807 浏览
提问于 2025-04-18 14:40

我正在使用以下脚本通过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])

撰写回答