0

Я пытаюсь получить доступ к элементу массива 2d, созданному из данных в файле csv. Я могу напечатать массив отлично.Ошибка элемента управления Python (за пределами границ) в 2D-массиве

Когда я пытаюсь получить доступ к массиву, чтобы найти определенный элемент (т.е. число от «строки» «столбца» 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) 

ответ

0

Если вы хотите прочитать многомерные данные из CSV, используйте numpy.genfromtxt() или numpy.loadtxt() функции, в зависимости от того, насколько полной ваш файл CSV является (используйте прежний, если длина строки меняется, последний при постоянной и равномерной).

Вместо этого вы пытаетесь построить многомерный массив numpy, который, как вы обнаружили, работает не так.

import numpy 

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

Благодаря Мартейн, я сделал изменения вы предложили, но он бросил ошибку: IndexError: слишком много индексов –

+0

@AshleighClayton: тогда вы не многомерный массив Numpy. –

+0

Привет, решил мою проблему. –

Смежные вопросы