你这样做很好。(不过,通过避免构建临时
triple
“迪克特,等一下再说一遍,i.m.o.)
内置的方式是使用
numpy.genfromtxt
. 根据您需要对文本文件执行的预处理量,它可能执行您需要的操作,也可能不执行您需要的操作。但是,作为一个基本示例:(使用StringIO模拟文件…)
from StringIO import StringIO
import numpy as np
txt_data = """
1\t2\t3
4\t\t6
7t\8t\9"""
infile = StringIO(txt_data)
data = np.genfromtxt(infile, usemask=True, delimiter='\t')
由此产生:
masked_array(data =
[[1.0 2.0 3.0]
[4.0 -- 6.0]
[7.0 8.0 9.0]],
mask =
[[False False False]
[False True False]
[False False False]],
fill_value = 1e+20)
genfromtxt
基本上是电话
line.strip().split(delimiter)
"xxx"
作为缺失值的标记,如果可以的话。