0

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

当我尝试访问数组以查找某个元素(即来自'row' 1 'column' 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)
4

1 回答 1

0

如果要从 CSV 读取多维数据,请使用numpy.genfromtxt()ornumpy.loadtxt()函数,具体取决于 CSV 文件的完整程度(如果行长变化则使用前者,如果行长不变则使用后者)。

相反,您尝试numpy手动构建一个多维数组,正如您发现的那样,它的工作方式并不完全。

import numpy

def create_alldata(whichfile):
    return numpy.genfromtxt(whichfile)                     
于 2013-08-16T09:32:12.303 回答