访问2D数组中的元素的Python索引错误(越界)

时间:2013-08-16 09:29:42

标签: python csv numpy multidimensional-array indexoutofboundsexception

我正在尝试访问从csv文件中的数据创建的二维数组元素。我可以很好地打印阵列。

当我尝试访问数组以查找某个元素(即'row'1'列'5中的数字)时,它会抛出错误:

C:\Users\AClayton\Current\python begin\code_tester.py in create_alldata(whichfile)
37     array_data=np.array(all_data)
---> 38     nb=array_data[1][5]
IndexError: index 1 is out of bounds for axis 0 with size 1

如果有人能提供帮助,那就太棒了

def create_alldata(whichfile):
    open_file = open(infile, 'rb')                       
    csv_current=csv.reader(open_file)                     
    all_data=[]                              
    np.array(all_data)
    for row in open_file:         
        all_data.append(row)                            
    open_file.close()
    array_data=np.array(all_data)
    nb=array_data[1][5]
    return array_data,    


path=raw_input('What is the directory?')
for infile in glob.glob(os.path.join(path, '*.csv')): 
    create_alldata(infile)

1 个答案:

答案 0 :(得分:0)

如果您想从CSV中读取多维数据,请使用numpy.genfromtxt()numpy.loadtxt()函数,具体取决于CSV文件的完整程度(如果行长度不同则使用前者,如果行长度不同则使用前者)和制服)。

您正在尝试手动构建一个多维numpy数组,正如您所发现的那样并不是那样。

import numpy

def create_alldata(whichfile):
    return numpy.genfromtxt(whichfile)