擅长:python、mysql、java
<p>我强烈建议你考虑一下。在</p>
<p>使用NumPy,您可以定义所谓的结构化数组(structured array),即每行由不同字段组成的数组,您可以直接命名和访问这些字段。在</p>
<p>假设您的数据存储在一个制表符分隔的文件<code>data.dat</code>,使用您描述的格式,您可以这样做</p>
<pre><code>>>> data = np.genfromtxt('data.txt', delimiter="\t", names=True, dtype=None)
</code></pre>
<p><a href="http://docs.scipy.org/doc/numpy/user/basics.io.genfromtxt.html" rel="nofollow">^{<cd2>}</a>函数从<code>'data.txt'</code>读取数据,沿<code>delimiter</code>拆分每一行,使用第一行获得字段名(<code>names=True</code>),并猜测每个字段(<code>data=None</code>)的数据类型。以你的例子,我得到</p>
^{pr2}$
<p>从这里,我们可以选择字段的组合</p>
<pre><code>>>> data[["Cat","Tarsier"]]
array([(7, 2), (3, 4), (1, 8), (0, 0), (7, 2), (0, 10)],
dtype=[('Cat', '<i8'), ('Tarsier', '<i8')])
</code></pre>
<p>或者只有几行:</p>
<pre><code>>>> data[[0,2]]
array([('A47', 1, 7, 2), ('A51', 2, 1, 8)],
dtype=[('Sample', '|S3'), ('Dog', '<i8'), ('Cat', '<i8'), ('Tarsier', '<i8')])
</code></pre>
<p>对字段进行统计:</p>
<pre><code>>>> data["Dog"].mean()
1.1666667
</code></pre>
<p>简言之,您可以按照您想要的方式过滤数据。在</p>