TypeError:list indices必须是整数,而不是元组

时间:2015-05-12 09:41:37

标签: python

我的代码:`

#!/usr/bin/python

with open("a.dat", "r") as ins:
    array = []
    for line in ins:
        l=line.strip()
        array.append(l)

a1 = array[:,1]
print a1

我想将a.dat作为数组读取,然后取第一列。出了什么问题?

2 个答案:

答案 0 :(得分:2)

对于加载数值数据,使用numpy而不仅仅是Python通常很有用。

import numpy as np
arr = np.loadtxt('a.dat')
print arr[:,0]

numpy是一个非常适合加载和操作数值数据的Python库(如果使用得当,它的使用速度比使用Python列表要快得多)。此外,为了处理具有混合数据类型的表格数据,我建议使用pandas

import pandas as pd
df = pd.load_csv('a.dat', sep=' ', names=['col1', 'col2'])
print df['col1']

可以找到Numpy here

可以找到Pandas here

答案 1 :(得分:1)

这是错误的:a1 = array[:,1]将值用逗号分隔,使其成为2个值的元组。你应该使用:

a1 = array[0]

要获得第一行或使用第一列:

column = [row[0] for row in array]