2016-08-26 4 views
0

У меня есть список, который я создал после добавления изображения из папкипреобразования прилагаемого списка изображений в панде dataframe

samples=[]  
for filename in glob.glob(path + '/*.png'): 
    samples.append(misc.imread(filename)) 

и образца списка выглядит

[array([[ 4, 4, 4, ..., 5, 5, 4], 
    [ 5, 5, 5, ..., 6, 6, 5], 
    [ 5, 5, 5, ..., 6, 6, 4], 
    ..., 
    [12, 12, 11, ..., 12, 12, 7], 
    [12, 11, 11, ..., 13, 12, 7], 
    [11, 11, 10, ..., 12, 12, 7]], dtype=uint8), array([[ 4, 4, 4, ..., 7, 7, 6], 
    [ 5, 5, 5, ..., 6, 6, 4], 
    [ 5, 5, 5, ..., 7, 7, 5]], dtype=uint8)] 

Как преобразовать размеры изображения в Pandas DataFrame. когда я пытался сделать это с

df=pd.DataFrame(samples) 

Это дает мне ошибку

ValueError: Must pass 2-d input 

Пожалуйста полага Я буду признателен всяческую помощь

+0

У вас есть список 2-й массивы, что делает 'samples' 3D-объекта. Посмотрите на панели Pandas, которые предназначены для хранения трехмерных данных. – Khris

+0

Я хочу преобразовать только в 2d dataframe, так что я могу использовать методы изомапов в будущем. –

+0

Затем вам нужно поместить каждый элемент списка в свой собственный фреймворк данных или создать фрейм данных с внутренними списками в качестве элементов в ваших ячейках. – Khris

ответ

0

Попробуйте добавить .reshape (-1) при добавлении изображения.

for filename in glob.glob(path + '/*.png'): 
    samples.append(misc.imread(filename).reshape(-1)) 

df = pd.DataFrame.from_records(samples) 

Если вы хотите 3d версии, пожалуйста, прочитайте Reshaping a numpy array in python

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