Python Pandas сводная таблица данных изображений
У меня есть фрейм данных using Pandas, я создал таблицу размером 3000000x3 (пиксели x полосы rob) и теперь пытаюсь ее свернуть, чтобы у меня была таблица размером 3x3000000, а затем запустить PCA против новых данных.
Я использую эту функцию поворота панды, но не могу понять, что я делаю неправильно.import pandas as pd
import numpy as np
import random as rd
from sklearn.decomposition import PCA
from sklearn import preprocessing
import matplotlib.pyplot as plt
import cv2
#read in image
img = cv2.imread('/Volumes/EXTERNAL/Stitched-Photos-for-Chris/p7_0015_20161005-949am-75m-pass-1.jpg.png',1)
row,col = img.shape[:2]
#print(row , col)
#get a unique pixel ID for each pixel
pixel = [i for i in range(0,row*col)]
data = pd.DataFrame(columns=['bBand','gBand','rBand'],index = pixel)
#populate data for each band
b,g,r = cv2.split(img)
data.loc[pixel,'bBand'] = b.flat[:]
data.loc[pixel,'gBand'] = g.flat[:]
data.loc[pixel,'rBand'] = r.flat[:]
datapivoted = data.pivot(index=['bBand','gBand','rBand'], columns=pixel, values=[data.loc[pixel,'bBand'],data.loc[pixel,'bBand'],data.loc[pixel,'bBand']])
print(data.head())
print(data.shape)
Обновить
Воссоздайте фрейм данных, используя следующий код, который я считаю правильным и более эффективным, но все еще не могу повернуть
img = cv2.imread('/Volumes/EXTERNAL/Stitched-Photos-for-Chris/p7_0015_20161005-949am-75m-pass-1.jpg.png',1)
row,col = img.shape[:2]
#print(row , col)
b,g,r = cv2.split(img)
data = pd.DataFrame({'bBnad':b.flat[:],'gBnad':g.flat[:],'rBnad':r.flat[:]})