我使用以下脚本使用numpy从标准输入中读取文件.
#!/usr/bin/env python
import numpy as np
import sys
data = np.genfromtxt(sys.stdin, delimiter=",")
print data.shape
print data
Run Code Online (Sandbox Code Playgroud)
这适用于具有多于1行的文件.但无法为此文件工作:
1,2,2,2,2,2,1,1,1
Run Code Online (Sandbox Code Playgroud)
我这样运行它
$ cat input-file.txt | ./test.py
Run Code Online (Sandbox Code Playgroud)
输出如下:
(9,)
[ 1. 2. 2. 2. 2. 2. 1. 1. 1.]
Run Code Online (Sandbox Code Playgroud)
它应该有形状(,9).有谁知道如何修理它?
强制它成为一个二维数组:
data = np.genfromtxt(sys.stdin, delimiter=",")
if len(data.shape) == 1:
data = np.array([data])
Run Code Online (Sandbox Code Playgroud)